一、概述
LOADRUNNER是Web应用性能测试常用的一个工具,它可以录制浏览器操作,并模拟大量用户并发访问系统。对于文件上传、文件导入的功能,在用LOADRUNNER录制生成脚本时,经常会出现一些问题,导致无法顺利进行测试。本文以某系统为例,介绍了导入文件脚本生成过程中遇到的问题及解决方案,对于其它系统的导入功能,可以参考借鉴。
二、问题及解决方案
1.同样的导入功能,却录制出不同的脚本,原因在哪?
下面两段脚本都是在录制导入功能自动生成的,但脚本却相差很多:
脚本一:
脚本二:
脚本一,将导入文件的二进制信息录制了出来,这样的脚本无法进行参数化,而且导入文件的内容不能变,否则无法回放成功。
脚本二,没有二进制的信息,有导入文件的路径信息:
<div>"Name=sourceFile", "Value=D:\\template.xls", "File=Yes", ENDITEM,</div><div></div>
脚本二这样的脚本正是我们想要的脚本,可以对文件名进行参数化,并发导入不同的文件。
为什么同样功能录制出的脚本却不一样呢?经过仔细比较两个脚本的差别和反复测试发现,原来是由于在选择上传文件时的路径有差别。脚本一录制时选择的上传文件路径中带有中文,如脚本一中红框部分所示,中文在脚本中显示成了乱码,结果loadrunner就把文件的二进制信息录制出来了。而脚本二选择的文件路径中没有中文,结果就没有录制出二进制信息。
Loadrunner为何这样实现,具体原因不太清楚,可能是由于带有中文乱码的文件路径信息虽然可以录制出来但是不能够识别和处理,就把二进制信息一起录制出来了。总之,只要文件路径、文件名没有中文,录制出来的脚本就是我们想要的了。
2.如果文件路径中没有中文,录制出来的脚本还是有二进制信息,应该如何解决呢?
这种问题虽然在实际当中还没有遇到过,但是通过手工对脚本进行改造,同样可以实现。
仍以脚本一为例,手工改造步骤如下。
首先,将二进制部分的内容全部删掉,删除后的脚本如下所示:
然后,将web_custom_request函数改写为web_submit_data函数:
红色框住的部分为修改的部分,说明如下:
·函数名的修改
·参数名URL改为Action
·将form-data中的参数-值改写为ITEMDATA的形式,在识别参数名称和参数值时注意排除\r\n等转义符的干扰
到此为止就完成了脚本的改造,可以实现自动化的导入测试了。
三、总结
Loadrunner的脚本录制功能很强大,使用过程中可能会遇到各种问题,通过反复推敲和尝试,抓住每一个细节,问题真相就会逐渐浮出水面。
作者:云竹
来源:http://www.51testing.com/html/69/n-4479269.html