川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

性能测试工具LoadRunner—邮件服务协议录制

作者:川石学院 日期:2021-06-07 18:03:59 点击数:

  相信软件测试工程师都知道,在进行邮件服务协议录制时,这里采用两种常见的协议进行录制:POP3和SMTP。这两个协议的区别是:POP3是负责收邮件的,SMTP是负责发邮件的。

  这里涉及到的软件有:客户端使用Foxmail软件,邮件服务器使用TurboMail软件。在此进行一个简单的实验,将客户端和服务器安装到同一台机器上,但这并不影响后面的实验。当然实际情况下,服务器和客户端一般都是分开的,具体的网络结构拓扑图如图12-12所示。  

性能测试工具LoadRunner—邮件服务协议录制(图1)

  图12-12 邮件服务器

  运行LoadRunner的脚本录制器VuGen,选择New Multiple Portocol Script双协议,同时选择POP3和SMTP两种协议进行录制,如图12-13所示。

  在录制程序对话框中设置需要录制的程序,这里需要录制的是Foxmail程序。这时LoadRunner会自动激活Foxmail程序。Foxmail程序运行后,撰写一封邮件并发送。此时发现一个意外的现象,录制过程中LoadRunner的那个浮动小窗口的标题栏一直显示“0 events”事件字样,这表明LoadRunner并没有捕获到网络通信包。停止录制后,发现里面没有生成相关的脚本语言。

  当然这种情况可能并不是每个人都会遇到。在网上也看到很多朋友遇到过类似的情况。如果录制不下来,那么使用LoadRunner进行性能测试的希望就变成了泡影。并且没有任何规律,表明什么时候能把脚本录制下来,什么时候录制不下来。一切都是凭运气。

  为了解决这种情况下面介绍一种新的录制方法——Port Mapping录制。  

性能测试工具LoadRunner—邮件服务协议录制(图2)

  图12-13 选择协议

  选择录制协议的过程还是不变,接着选择录制的程序,在这里不再选择Foxmail.exe,而是选择LoadRunner安装目录下\bin\wplus_init_wsock.exe程序,如图12-14所示。  

性能测试工具LoadRunner—邮件服务协议录制(图3)

  图12-14 设置录制程序

  点击 按钮,弹出Recording Options对话框。选择Port Mapping并点击 按钮,弹出Server Entry对话框。对其进行如图12-15所示的设置。

  各设置项具体含义如下:

  Target Server(目标服务器):选择邮件服务器的地址,可以输入IP地址或域名地址,如mail.myspace.com。  

性能测试工具LoadRunner—邮件服务协议录制(图4)

  图12-15 设置代理

  Port(端口号):设置服务ID,这里是POP3协议,所以端口号为110。

  Service ID(服务ID):选择需要的协议,这里设置为POP3。

  Record Type(录制方式):选择录制方式有代理和直接两种,这里设置为代理。

  Traffic Forwarding:将Allow forwarding to target server from local port复选框选中,并设置一个端口。这个端口可以随便设置,这里设置为22。

  这些设置项是什么意思呢?LoadRunner录制过程中,首先得到的是22端口的请求,得到22端口请求后,将22端口请求转发到127.0.0.1的110端口。其原理如图12-16所示。

  使用同样的方法,设置好SMTP代理。

  接下来要对Foxmail进行一些设置。进入“邮箱账户设置”对话框,选择“邮件服务器”属性,将发送邮件服务器(SMTP)和POP3服务器的地址都设置为127.0.0.1或localhost,如图12-17所示。

  再在“邮箱账户设置”对话框点击“高级”按钮,进入“高级设置”界面。将SMTP服务器端口和POP3服务器端口分别设置为22和21。22和21是在设置LoadRunner录制选项中Traffic Forwarding的端口号,如图12-18所示。 

性能测试工具LoadRunner—邮件服务协议录制(图5)

  图12-16 LoadRunner代理过程  

性能测试工具LoadRunner—邮件服务协议录制(图6)

  图12-17 设置邮箱服务器地址  

性能测试工具LoadRunner—邮件服务协议录制(图7)

  图12-18 设置服务器端口号

  设置完成之后,可以开始录制了,开始录制后,LoadRunner会激活wplus_init_wsock.exe程序,这是一个代理服务器程序,如图12-19所示。  

性能测试工具LoadRunner—邮件服务协议录制(图8)

  图12-19 服务器代理程序

  这时LoadRunner会做一些初始化的工作,会发现在没有做任何动作的情况下LoadRunner就已经捕获了网络通信包,如图12-20所示。  

性能测试工具LoadRunner—邮件服务协议录制(图9)

  图12-20 网络通信包

  进行收取一封邮件操作。根据设置,Foxmail会向127.0.0.1即本机21端口发送POP3命令。这些命令会被wplus_init_wsock.exe捕获,wplus_init_wsock.exe捕获后会将这些命令转发到mail.myspace.com的110端口。这才是真正的邮件服务器,邮件服务器把信取出后,发给wplus_init_wsock.exe,然后wplus_init_wsock.exe把信转发给Foxmail。结果就是Foxmail里面正确地收取到了邮件。

  此时LoadRunner显示捕获了35个网络包。扣除上面19个,实际上捕获了35-19=16个网络包。这些网络包就是Foxmail发出的取信请求和邮件服务器传递给Foxmail的邮件,只是这些请求是经过wplus_init_wsock.exe这个代理程序进行转发的。wplus_init_wsock.exe转发的同时,会把这些通信包记录下来,并转化成脚本,这就是LoadRunner录制脚本的真正秘密。

  录制结束后,应该把代理程序wplus_init_wsock.exe关闭掉,否则再次录制时,由于端口被占用,导致录制无法进行。

  通过这个录制过程,可以看出LoadRunner录制脚本的方式是基于代理(proxy)的方式。只不过在典型的录制方式中,proxy是看不见的,或者说不用处理录制方式,称之为“隐式proxy录制方式”。而这里介绍的方式称之为“显式proxy录制方式”。另外一种录制方式是基于以太网的Sniffer方式,利用以太网的通信特性,采用侦听的方式。网上偷窥别人MSN聊天的MSN嗅探器就是基于这个原理。但是这种Sinffer方式的最大缺陷是录制的客户端和服务器必须在同一个以太网段内。Proxy方式则不受这个限制,甚至可以录制UNIX与UNIX之间的通信,即客户端和服务器都是运行UNIX系统下的录制工作。因此Proxy更加具有通用性。

  录制完成后生成如下脚本,录制的业务是使用Foxmail发送一封邮件,邮件的接收方为自己,并使用Foxmail收取邮件。

  Action()

  {

  smtp1 = 0;

  smtp_logon_ex(&smtp1, "SmtpLogon",

  "URL=smtp://test:1234567@127.0.0.1",

  "CommonName=LoadRunner User",

  LAST);

  smtp_send_mail_ex(&smtp1, "SendMail",

  "To=test@myspace.com",

  "From= SIZE=1443",

  "Subject=Hello",

  "ContentType=multipart/alternative;",

  MAILOPTIONS,

  "From: \"test\" ",

  "To: \"test\" ",

  "X-mailer: Foxmail 6, 15, 201, 22 [cn]",

  MAILDATA,

  "AttachRawFile=mailnote1_01.dat",

  "AttachRawFile=mailnote1_02.dat",

  LAST);

  smtp_logout_ex(&smtp1);

  smtp_free_ex(&smtp1);

  pop31 = 0;

  pop3_logon_ex(&pop31, "Pop3Logon",

  "URL=pop3://test:1234567@127.0.0.1",

  LAST);

  pop3_command_ex(&pop31, "Pop3Command",

  "Command=STAT",

  LAST);

  pop3_list_ex(&pop31, "Pop3List",

  LAST);

  pop3_retrieve_ex(&pop31, "RetrieveMail",

  "RetrieveList=1",

  "DeleteMail=No",

  LAST);

  pop3_logoff_ex(&pop31);

  pop3_free_ex(&pop31);

  return 0;

  }

  附:川石信息全国校区最新开班时间,课程资料获取13691729932(微信同号)。  

性能测试工具LoadRunner—邮件服务协议录制(图10)


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-06-07 18:03:59
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-06-07 18:03:59
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-06-07 18:03:59
  • 建筑工程专业朱同学成功转行为软件测试人!2021-06-07 18:03:59
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-06-07 18:03:59
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-06-07 18:03:59
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-06-07 18:03:59
  • 文科生转行软件测试照样拿下高薪15K!2021-06-07 18:03:59
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-06-07 18:03:59
  • 毕业1年,迷茫的他最终选择转行软件测试2021-06-07 18:03:59