https://www.cnblogs.com/luihengk/p/6102095.html

先介绍一下邮件协议SMTP的工作机制(连接和发送过程),用wireshark工具抓包进行分析,如下:

SMTP协议的工作机制(连接和发送过程):

1.建立TCP连接,并将邮件服务器地址给客户端;

2.客户端发送EHLO命令以标识发件人自己的身份,然后客户端登录邮件服务器;

3.客户端先标示电子邮件的发件人发送MAIL命令,服务器端以OK作为响应,表明准备接收;

4.客户端发送RCPT 命令,以标识该电子邮件的计划接收人,可以有多个RCPT行, 服务器端以OK作为响应,表示愿意为收件人接收邮件;

5.客户端用命令DATA发送数据;

6.以.表示结束输入内容一起发送出去,服务器端并以OK作为响应;

7.客户端结束发送,用QUIT命令退出,服务器端以Bye作为响应,表示结束;

了解了邮件协议SMTP的工作机制后,下面开始进行性能测试:

一、先安装好邮件客户端FoxMail,被配置好邮件服务器等信息;

二、使用LoadRunner录制脚本

三、生成脚本,并优化脚本

Tasks目录:

接收邮件脚本:

发送邮件脚本:

脚本分析:

1)整体上的分析,接收邮件操作和发送邮件操作在Tasks目录分别生成一对.dat文件,打开.dat文件可以查看到附件的信息(附件类型、内容等);

2)接收邮件和发送邮件的脚本函数是一样的,邮件协议的工作过程是:登录到邮件服务器à发送消息à退出邮件服务器à释放邮件服务器;

3)脚本优化(参数化)

四、执行测试

1)在Contorller场景压力过程中,出现大量的报错,如图1:

查看日志,是由于用户多登陆时,session连接数已经满了,邮件服务器不允许重复登录。当连接数满的时候,需要清理一下。

2)在Contorller场景过程中,出现大量的报错,如图2,3:

这是由于邮件处理的原理是以队列的形式发送的,当多用户并发时,队列阻塞,发送请求和服务响应会出现大量报错信息,场景运行到12分30秒时响应时间没了,此时所有的用户已经处理完成。

3)启动LR录制时,工具先会判断邮件服务器和客户端之间的连接,是否有未接收的邮件显示(因邮件客户端设置不是时时接收邮件),录制日志如图4:

附录:

附录:

SMTP常用的响应

501——参数格式错误

502——命令不可实现

503——错误的命令序列

504——命令参数不可实现

211——系统状态或系统帮助响应

214——帮助信息

220<domain>——服务器就绪

221<domain>——服务关闭

421<domain>——服务器未就绪,关闭传输信道

250——要求的邮件操作完成

251——用户非本地,将转发向<forward-path>

450——要求的邮件操作未完成,邮箱不可用

550——要求的邮件操作未完成,邮箱不可用

451——放弃要求的操作,处理过程中出错

551——用户非本地,请尝试<forward-path>

452——系统存储不足,要求的操作未执行

552——过量的存储分配,要求的操作未执行

553——邮箱名不可用,要求的操作未执行

354——开始邮件输入,以“.”结束

554——操作失败

函数

使用SMTP函数

函数名

描述

smtp_logon[_ex]

登录到SMTP服务器

smtp_translate[_ex]

转换SMTP消息

smtp_send_mail[_ex]

发送SMTP消息

smtp_free[_ex]

释放SMTP服务器,使其不处理命令

smtp_logout[_ex]

从SMTP服务器注销

使用POP3函数

每个POP3函数都以pop3前缀开头

函数名

描述

pop3_logon[_ex]

登录到POP3服务器

pop3_command[_ex]

想POP3服务器发送命令

pop3_retrieve[_ex]

检索POP3服务器上的邮件

pop3_list[_ex]

列出POP3服务器上的邮件

pop3_delete[_ex]

删除服务器上的邮件

pop3_free[_ex]

释放POP3服务器,使其不处理命令

pop3_logoff[_ex]

从POP3服务器注销

转载于:https://www.cnblogs.com/davidwang456/articles/10660109.html

邮件协议(SMTP)性能测试总结(Foxmail邮箱)相关推荐

  1. 邮件协议SMTP、POP3和IMAP

    邮件协议SMTP.POP3和IMAP SMTP (发送) POP(离线保存) IMAP(多端操作同一用户) 各种协议的host以及port 发送邮件 同一域下 不同域下 接收邮件 使用的是POP3协议 ...

  2. 邮件协议SMTP/POP3/IMAP——应用层

    一.SMTP协议 1.SMTP协议简介 SMTP称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效.可靠的邮件传输.它的一个重要特点是它能够在传送 ...

  3. 邮件协议(SMTP、POP3、IMAP4)

    文章目录 一.电子邮件系统 1.概述 2.常见的电子邮件系统(服务端) 3.常见邮件客户端 4.SMTP状态码 一.电子邮件系统 1.概述 网络电子邮件系统,好处在于,价格低廉,速度非常快 形式多样化 ...

  4. SMTP简单邮件协议邮件的组成、作用及过程

    1.    电子邮件系统由哪几部分组成?各部分的主要作用是什么? 假设Bob(bob@ucla.edu)给Alice( alice@stanford.edu)写一封电子邮件,请描述从Bob写电子邮件到 ...

  5. 网安学习(二十五)HTTP协议、HTTS、邮件协议

    一.HTTP协议 1.概念 HTTP(超文本传输协议)是用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议 基于TCP/IP(HTML文件.图片.查询结构等) 2.万维网服务 采用C/S ...

  6. 邮箱服务器满了foxmail,foxmail邮箱的容量满了,应该怎样删除-上海腾讯企业邮箱[foxmail]...

    foxmail邮箱的容量满了,应该怎样删除? 作者:腾讯企业邮箱客户端    发布时间:2021-01-16 10:20:20  访问量:1546  来源:foxmail 导读:在日常办公中,很多职场 ...

  7. 邮箱服务器满了foxmail,关于foxmail邮箱满了的解决方法,简单有效

    关于foxmail邮箱满了的解决方法,简单有效 2020-04-20 已有人学习| 编辑:machine; 来源:知识屋; 在日常办公中,很多职场白领都习惯使用foxmail来收发邮件.如果来往邮件比 ...

  8. 邮件协议POP3/IMAP/SMTP学习总结 SSL/TLS介绍 常用邮箱服务器设置

    邮箱协议介绍 首先,SMTP.POP和IMAP都是与邮件有关的协议.SMTP主要是负责传送邮件,而POP和IMAP是负责接收邮件. SMTP SMTP (Simple Mail Transfer Pr ...

  9. foxmail邮件加载失败重试_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)...

    修改php.ini中的一些配置 extension=php_openssl.dll //前面的分号去掉,allow_url_fopen = Off 改为 allow_url_fopen = On PH ...

最新文章

  1. python 验证码识别示例(二) 复杂验证码识别
  2. LeetCode第九题—— Palindrome Number(判断回文数)
  3. Java 项目权威排名:Spring生态抢镜,Gradle战胜Maven排第2,点击查看更多...
  4. idea的一些常用快捷键
  5. 设计模式(十)——抽象工厂模式
  6. 取代java_为什么C++没有被java取代
  7. linux学习之lvm-逻辑卷管理器
  8. java发送qq邮件_「java发邮件」Java 通过SMTP实现发送QQ邮件 - seo实验室
  9. python中arcpy_如何使用ArcPy?
  10. redis集群管理-5.0.14版本
  11. 计算机硬件部份的核心部件是,计算机硬件的核心部分是什么?
  12. java socket多人聊天室_如何运用Java socket实现多人聊天室功能
  13. pikachu靶场通关指南
  14. 从0到1快速了解netty长连接网关协议
  15. html5 canvas 图片移动端,支持移动端的HTML5 Canvas逼真黑板特效
  16. Mysql错误编码和解释表
  17. 电脑显示U盘,但是读取不了
  18. java报表查询 跟 语句查询区别_Java报表FineReport在医院院长查询分析系统中有什么用...
  19. Microsoft Office 97(微软Office办公软件)绿色经典珍藏版 | office97中文版下载
  20. 使用blender将全景图转为天空盒图

热门文章

  1. 51Nod - 2142身份证号排序
  2. tcp/ip 协议栈Linux内核源码分析12 udp套接字发送流程一
  3. distinct作用于后面所有的列吗_InnoDB索引允许NULL对性能有影响吗
  4. bootstrap 彈窗默認打開_Bootstrap 手册 07 - JS 组件篇
  5. python中collections_Python中collections模块的基本使用教程
  6. python dump函数_python 处理 json 四个函数dumps、loads、dump、load的区别
  7. 长春8中2021年高考 成绩查询,长春八中2018高考喜报成绩、本科重本上线人数情况...
  8. java语言修饰符$_Java语言中的修饰符
  9. android usb集线器,通过Maven将多个部署到USB集线器上的Android设备
  10. linux文件目录操作实验报告,Linux操作系统实验4文件和目录操作