基于LoadRunner Port Mapping测试方法录制性能测试脚本的研究
2020-07-10王健
摘 要 使用测试工具LoadRunner进行基于Socket通信的协议的性能测试,在创建、录制测试脚本时,经常会出现由于各种不同的原因,导致难以录制或者无法录制脚本的情况,阻碍了性能测试工作的顺利进行。本文通过对LoadRunner Port Mapping测试方法的研究并结合实际案例,可以解决特殊测试场景无法录制基于Socket通信协议脚本的问题,可以不受客户端运行的操作系统平台影响、不受软件架构和测试环境的影响完成对特定服务器端口流量数据的录制,为应用LoadRunner进行性能测试奠定基础。
关键词 Port Mapping;LoadRunner;端口映射;性能测试;测试方法;软件测试
引言
使用测试工具LoadRunner,是执行性能测试最常用的一种方式。LoadRunner可以通过模拟大量用户实施并发负载,同时以实时性能监测的方式来发现和确认问题。在使用LoadRunner创建、录制测试脚本时,经常会出现由于各种不同的原因,导致难以录制或者无法录制脚本的情况。其原因主要有以下几个方面:
(1)通用主流浏览器的版本更新速度较快,测试工具无法充分支持;
(2)浏览器的内核种类较多,测试工具无法充分匹配;
(3)C/S架构软件,通过测试工具录制脚本困难,经常受到制约和障碍;
(4)依赖较多外部硬件设备的软件系统,模拟外部硬件设备与服务器之间的数据交互较为困难;
(5)操作系统平台不支持测试工具的运行;
(6)无法通过测试工具启动、调用应用程序。
通过LoadRunner Port Mapping测试方法,可以解决特殊测试场景和特殊测试环境下无法录制基于Socket通信协议脚本的问题,可以完成对特定服务器端口流量数据的录制。
1 Port Mapping测试方法简介
Port Mapping的测试方法,主要应用于基于Socket通信协议的软件之间。基于Socket通信的协议主要有FTP、HTTP、IMAP、NCA、POP3和SMTP等。
使用LoadRunner的经典录制方法,可以直接在客户端的计算机上安装、运行LoadRunner,按照经典的流程获得客户端和服务端软件之间的网络通信交互数据,从而直接完成测试脚本的录制、调试和回放等,通过对测试场景的设计、配置和运行,完成压力输出,得到性能测试结果。
使用LoadRunner Port Mapping测试方法录制脚本时,可以通过设置“Port Mapping”节点的选项,通过指定服务器名、端口号的方式创建映射,将经过被测端IP地址和端口号的网络通信交互数据,使用特定的通信协议映射到指定的端口。客户端向服务器发起请求后,通过配置Port Mapping,请求数据发送给了测试计算机,测试计算机捕获到了请求的数据内容,再将请求数据发送至服务器;服务器将请求数据处理完成后,进行响应,将恢复数据先返回给测试计算机,测试计算机再次捕获到了服务器响应的数据内容,再将恢复数据返回至客户端。
使用LoadRunner对基于Socket通信的软件进行性能测试时,可以在客户端计算机和服务端计算机之间配置用于录制脚本的第三台测试计算机,通过Port Mapping测试方法,采用一种类似代理的方式,可以根据测试的需要录制获得硬件设备软件、浏览器或客户端软件与服务器端软件之间网络通信交互的数据,再根据测试指标的要求,完成测试脚本的调试和回放工作,再通过对测试场景的设计、配置和运行,以回放脚本的方式模拟多个外部硬件设备、浏览器或客户端软件,从而实现对服务端软件的压力。
例如,可以指明端口8080上来自服务器的所有流量都应作为HTTP处理;还可以不管端口号为多少,指定来自服务器的所有流量都应映射到FTP协议;可以将端口21上的所有流量映射到FTP,不管来自哪个服务器[1]。
2 Port Mapping测试方法的使用
在LoadRunner中,录制单协议脚本,使用 HTTP 或 WinSock 协议时,在“Recording Options”界面中会出现“Port Mapping”节点;录制多协议脚本时,至少有一个协议是基于Socket协议的,才会在“Recording Options”界面中会出现“Port Mapping”节点。
“Port Mapping”节点的列表区域内部显示了端口映射的条目信息,可以通过选取或清除其旁边的复选框来启用或禁用条目。条目禁用启用后,录制脚本时,LoadRunner会录制到该服务器的所有流量;条目禁用后,录制脚本时,LoadRunner会忽略到该服务器的所有流量。
通过在“Target Server”文本框输入IP地址或主机名,可以设置目标服务器的IP地址或主机名。该文本框的默认值为所有服务器。
通过对“Port”的配置可以设置条目所适用的目标服务器的端口,输入0则可指定所有的端口。如果未指定所有端口名和服务器名,LoadRunner将在数据分配到服务时将使用以下优先级:
(1)优先级1:指定端口和服务器
(2)优先级2:未指定端口,指定服务器
(3)优先级3:指定端口,未指定服务器
(4)优先级4:端口和服务器均未指定
具有高优先级的映射条目不会被优先级较低的条目覆盖。例如,如果指定将服务器ServerB上使用端口21的流量作为FTP处理,然后指定将端口21上的所有服务器作为HTTP处理,则通过端口21的流量数据将作为FTP处理。
(5)强制映射。如果为服务器和端口号的组合指定了映射到的“Service ID”,LoadRunner将强制网络流量使用該“Service ID”。例如,如果将端口1080上的
通过对“Service ID”下拉菜单的选择,可以设置录制器使用的协议或服务名称,用于标识连接类型(即HTTP、FTP等)。也可以通过输入不超过8个字符的文本, 指定新的名称。
通过对“Service Type”下拉菜单的选择,可以设置服务类型,默认设置为TCP。
通过对“Record Type”下拉菜单的选择,可以设置录制的类型,通过直接或代理服务器录制方式。
通过对“Connection Type”下来菜单的选择,可以设置连接的三种安全级别:明码(非安全)、SSL或自动。如果选择“自动”,录制器将检查前4个字节是否为SSL签名。如果它检测到SSL签名,将假定正在使用SSL。
通过对“SSL Version”下拉菜单的选择,可以设置与客户端应用程序和服务器通信时使用的首选SSL版本。“SSL Version”的默认值为“SSL2/3”,也可以根据不同的安全算法的需要设置为SSL3.0、SSL2.0或TLS1.0。
通过对“SSL Cipher”下拉菜单的选择,可以设置连接远程安全服务器时使用的首选SSL密码[2]。
3 基于Port Mapping测试方法录制性能测试脚本的实例
使用Port Mapping测试方法完成了某社区安全系统项目的性能测试。在该实际案例中,服务器的外部连接了多个使用Socket协议通信的采集设备。采集设备内运行嵌入式软件,负责原始数据的采集,及与服务软件的数据交互。性能测试的需求是,需要测试服务软件是否可以满足同时与多个采集设备进行数据交互。
在测试过程中,使用LoadRunner通过Port Mapping测试方法,捕获到采集设备软件和服务软件之间的数据交互,然后通过对生成的测试脚本进行修改和调试,使LoadRunner成功模拟采集设备同服务软件进行交互。
采集设备的IP地址为192.168.56.1;服务器的IP地址为192.168.56.2,服务软件的端口号为1080;测试计算机的IP地址为192.168.56.3,数据转发的端口号为:1080。
修改采集设备软件的配置,使发送数据的目的地服务器的IP地址从192.168.56.2修改为192.168.56.3,端口号保持不变,依然为1080。
运行LoadRunner,点击录制按钮开始新建录制脚本,在Start Recording对话框中的Application type下拉菜单选择Win32 Applications;在Program to record路径文本框中选择LoadRunner安装路径中bin目录下的wplus_init_wsock.exe。
点击Options按钮,可以进入“Recording Options”界面,然后在“Port Mapping”节点进行设置。在Server Entry界面中,可以添加目标服务器的IP地址和端口映射到测试计算机上,保存完毕后,执行开始录制操作。
LoadRunner会弹出LoadRunner Sockets Proxy Starter对话框,说明此时Sockets Proxy已经启动成功,可以继续执行业务功能,以录制脚本。
启动设备软件后,设备软件成功向服务软件发送数据,服务软件也成功地向设备软件回复了应答数据,确认设备软件和服务软件连接正确。同时查看LoadRunner的Recording log,可以看到LoadRunner已经捕获到客户端和服务端软件间的网络通信的交互数据。
成功完成了脚本的录制后,性能测试的基础性工作已经完成。经过正常的修改脚本、调试脚本,设置脚本运行策略和场景,最终模拟实现了并发传输数据对服务软件的压力。图 45 使用LoadRunner模拟多个采集设备与服务软件进行网络通信交互数据[3]。
4 结束语
LoadRunner Port Mapping測试方法,不受客户端运行的操作系统平台影响、不受软件架构和测试环境的影响,解决了特殊测试场景无法录制基于Socket通信协议脚本的问题,可以完成对特定服务器端口流量数据的录制,在录制基于Socket通信协议性能测试脚本时,是一种接近于万能的录制方式。为使用LoadRunner进行性能测试的后续工作奠定了基础。
参考文献
[1] 陈亚伟.基于LoadRunner的移动端软件性能测试研究与应用[J].信息通信,2017(8):74.
[2] 陶性铭.基于LoadRunner的软件性能测试研究[J].信息通信,2017(12):130.
[3] 张君栋.基于LoadRunner的WebGIS网站性能测试[J].北京测绘,2016(4):23.
作者简介
王健(1983-),男,甘肃省临洮县人;学历:硕士研究生,职称:工程师,现就职单位:单位名称:北京赛迪软件测评工程技术中心有限公司,研究方向:软件测试。