性能测试从零开始——LoadRunner入门(八)[1] 性能测试工具
第8章 欲善其事先利其器——VU脚本开发实战
VU开发脚本是我们使用LoadRunner做性能测试中一个重要的步骤,这里涉及软件系统架构、计算机编程技巧和VU本身的功能特性。在本章,我们将结合邮件系统,介绍如何使用VU生成基于SMTP/IMAP协议的脚本。
我们将按照如下的思路完成脚本。
熟悉SMTP/POP3/IMAP协议规范和原语。
使用VU录制邮件收发操作,分析VU脚本对标准SMTP/IMAP协议的封装与实现机理。
使用VU Java模板用户嵌入Java message接口,实现邮件收发,并以此介绍VU Java模板用户的使用方法,以及Java classpath等相关设置。
8.1 邮件服务SMTP/IMAP协议介绍
电子邮件是我们日常工作中经常使用到的一种交流方式,它是Internet应用最广的一种服务。
8.1.1 电子邮件的工作原理 软件测试
电子邮件是Internet上最为流行的应用之一。如同邮递员分发投递传统邮件一样,电子邮件也是异步的,也就是说,人们是在方便的时候发送和阅读邮件的,无须预先与别人协同。与传统邮件不同的是,电子邮件既迅速,又易于分发,而且成本低廉。另外,现代的电子邮件消息可以包含超链接、HTML格式文本、图像、声音甚至视频数据。
电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及发送方与接收方,发送方构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮件服务器(SMTP服务器)发送。邮件服务器识别接收者的地址,并向管理该地址的邮件服务器(IMAP或POP3服务器)发送消息。邮件服务器将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。
8.1.2 SMTP协议介绍
简单邮件传送协议(SMTP)是Internet电子邮件系统首要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。SMTP协议服务的默认端口是25。
SMTP协议与人们用于面对面交互的礼仪之间有许多相似之处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不在工作,SMTP客户就等待一段时间后再尝试建立该连接。这个连接建立之后,SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息。SMTP可以指望由TCP提供的可靠数据传输服务把该消息无错地传送到服务器。如果客户还有其他邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程;否则,它就指示TCP关闭该连接。
让我们看一个客户(C)和服务器(S)交互的例子。前面标以“C:”的文本行是名为Mike的客户端发送的请求,Mike想给Rose发送一封“I love you”的电子邮件情书,前面标以“S:”的是cesoo.com服务器的回应。以下传输内容在TCP连接建立之后马上发生。