第一次手写Loadrunner测试脚本

Posted tjtest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次手写Loadrunner测试脚本相关的知识,希望对你有一定的参考价值。

第一次手写性能测试脚本,过程比较虐:

1、辅助工具:抓包工具burpsuite,观察请求及响应数据
2、了解Loadrunner中的一个模拟请求的函数:可以模拟get和post
       web_submit_data("IsAttenderMobileOrEmailExist", 
             "Action=O网页链接", 
             "Method=POST", 
             "TargetFrame=", 
             "RecContentType=application/x-www-form-urlencoded; charset=UTF-8", 
             "Referer=O网页链接", 
             "Snapshot=t23.inf", 
             "Mode=html", 
             ITEMDATA, 
             "Name=ASP.NET_SessionId", "Value={ASP.NET_SessionId}", ENDITEM, 
             "Name=__RequestVerificationToken_L2NvbmZlcmVuY2U1", "Value={__RequestVerificationToken_L2NvbmZlcmVuY2U1}", ENDITEM, 
             "Name=__RequestVerificationToken", "Value={__RequestVerificationToken}", ENDITEM, 
             "Name=No", "Value=MEETING0920", ENDITEM, 
             "Name=SiteId", "Value=987", ENDITEM, 
             "Name=Mobile", "Value=13001051551", ENDITEM, 
             "Name=Email", "[email protected]", ENDITEM, 
             LAST);
3、手动关联:根据抓包工具获取到的请求参数,与工程师确认服务器自动返回参数,然后手动关联
   (1)关联函数:
           web_reg_save_param("__RequestVerificationToken_L2NvbmZlcmVuY2U1",
                "LB=__RequestVerificationToken_L2NvbmZlcmVuY2U1\=",
                "RB=;",
                "Ord=1",
                "RelFrameId=1",
                "Search=ALL",
                LAST);
        通过postman查看响应数据,确定关联函数中的左右边界值,如果边界值内容中存在双引号",需要对其转义,使用反斜杠\"
        一开始是从网上搜了个关联函数,运行后报错Action.c(6): Error -27216: Invalid argument (number 4)   [MsgId: MERR-27216],这个意思是这个函数中的第4个参数无效,结果仔细回忆,原来拷贝的函数是web_reg_save_param_ex,后来手动将_ex删掉,而这两个函数的参数名是不一样的
    (2)关联函数位置一定要放到请求服务器返回关联参数的函数前面
    (3)关联三个参数,只有一个参数能保存,但替换时就丢失,日志报如下警告:Warning: The string ‘__RequestVerificationToken‘ with parameter delimiters is not a parameter.
         解决办法:将web_reg_save_param 改为 web_reg_save_param_ex
           web_reg_save_param_ex(
                "ParamName=__RequestVerificationToken",
                "LB=<input name\=\"__RequestVerificationToken\" type=\"hidden\" value\=\"",
                "RB=\" />",
                LAST);
4、关联没问题后,运行脚本,还是报错,Action.c(102): To location "O网页链接"   [MsgId: MMSG-26693]
   结果通过被测程序的日志发现,脚本的函数中少了个post参数address,添加后正常运行
5、重复运行后,关联函数找不到要保存的值,报错如下:Error -26377: No match found for the requested parameter "__RequestVerificationToken_L2NvbmZlcmVuY2U1". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 50000 bytes, use web_set_max_html_param_len to increase the parameter size   [MsgId: MERR-26377]
   结果发现是重复注册的问题,如果重复注册,服务器就不返回__RequestVerificationToken_L2NvbmZlcmVuY2U1,所以找不到,删除数据后,重新执行ok

6、脚本终于不报错了,运行完一看数据库,中文全是乱码,但是脚本中不是,搜索得出:脚本编辑器中的编码与运行时系统的数据编码不同所导致
   解决办法:Run-time Settings中,找到 Preferences >> Option >> Convert form/to UTF-8,按需选择,YES

到此,算是一个里程碑了,加油!!!

以上是关于第一次手写Loadrunner测试脚本的主要内容,如果未能解决你的问题,请参考以下文章

软件测试_Loadrunner_APP测试_性能测试_脚本优化_脚本回放

loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写

LoadRunner编写Socket协议脚本方法

性能测试迭代与检查点(loadrunner12.55)

LoadRunner利用代理模式录制手机脚本

loadrunner如何做接口的压力测试?