选择需要传参,且不为空的字段进行参数化。
可以手工录入字段的默认值。
4. 获取返回报文并参数化
选中返回报文的某些字段,并保存为参数。
需要在后期做断言时使用。
5. 对脚本的传参进行参数化
这个操作是将前期设计的测试用例批量用参数来实现。操作不在赘述。
6. 对返回结果进行输出操作,部分实现代码
open_1=(int)fopen("D:\\work\\5-webservice\\SendMail\\TestReport.txt","at+"); if (strcmp(lr_eval_string("{Param_errorMessage}"),"")!=0) { lr_end_transaction("SpringFestivalPolicySaveService", LR_FAIL); lr_error_message("*********%s 保存失败,错误信息:%s*********", lr_eval_string("{Param_policyNo}"), lr_eval_string("{Param_errorMessage}")); fprintf( open_1," %s 保存失败,错误信息:%s\n",lr_eval_string("{Param_policyNo}"),lr_eval_string("{Param_errorMessage}") ); } else { lr_end_transaction("SpringFestivalPolicySaveService", LR_PASS); lr_output_message("********%s 保存成功*********", lr_eval_string("{Param_policyNo}")); fprintf( open_1," %s 保存成功%s\n",lr_eval_string("{Param_policyNo}"),lr_eval_string("{Param_errorMessage}") ); } fclose(); |
7. 参数化中迭代次数的设置
原则上迭代次数和脚本参数保持一致,保证每个参数都被使用,每条用例都被执行。
三、发送邮件脚本实现
发送邮件的脚本使用Loadrunner中的SMTP协议,如图:
邮件需要将测试结果以附件形式发送至固定邮箱,核心代码如下:
Action() { smtp1 = 0; smtp_logon_ex(&smtp1, "SmtpLogon", "URL=smtp://100.250.xxx.xx",//server ip地址 "LogonUser=396086662@qq.com", "LogonPass=*******",//邮箱密码 "CommonName=自动化测试结果", LAST); smtp_translate_ex(&smtp1,"TestReport.txt", "Content-Type:application/octet-stream;\n name=\"base64_TestReport.dat\"\nContent-Transfer-Encoding:base64\nContent-Disposition:attachment;\n filename=\"base64_TestReport.txt\"\r\n", BASE64_ENCODED, "base64_TestReport.txt"); smtp_send_mail_ex(&smtp1, "SendMail", "To=396086662@qq.com ", "From=<396086662@qq.com > SIZE=3673", "Subject=TestReport{Now_date}", "ContentType=multipart/mixed;", MAILOPTIONS, "From: \"396086662@qq.com \" " "<396086662@qq.com >", "To: =?GB2312?B?u/TR3sP3?= <396086662@qq.com >", "X-Priority: 3", "X-Has-Attach: yes", "X-Mailer: Foxmail 7, 2, 7, 26[cn]", MAILDATA, "AttachRawFile=mailnote1_01.dat", // "AttachRawFile=mailnote1_02.dat", "AttachRawFile=base64_TestReport.txt", LAST); smtp_logout_ex(&smtp1); smtp_free_ex(&smtp1); remove("D:\\work\\5-webservice\\SendMail\\TestReport.txt"); return 0; } |
发送的附件使用int smtp_translate_ex( SMTP *ppsmtp, char *filename, char *content_header, ENCODING_TYPE encoding, char *output_filename );函数来进行参数化操作,且每次发送邮件后需要将自动化测试生成的TestReport删除或者重命名,否则下一次执行会追加文本。
四、场景设计
场景设计使用Group和Basic schedule,发送脚本的邮件在所有测试用例执行完之后运行,我这里设置了1分钟之后执行SendMail脚本。
五、定时任务设置
1. 首先要设置自动运行场景的命令,我用批处理命令实现,命令如下:
@echo off title "启动Loadrunner场景,执行TestCase" SET M_ROOT=C:\Program Files (x86)\HP\LoadRunner\bin cd %M_ROOT% wlrun.exe -TestPath D:\work\5-webservice\AutoTestWebService.lrs -port 8080 -Run echo **********TestCase执行完毕,按任意键退出!********** pause>nul exit |
其中,SET M_ROOT是Loadrunner的bin路径,TestPath是存放测试场景的路径。
执行批处理命令,如果报"wlrun.exe不是内部或外部命令,也不是可运行的程序",需要将wlrun.exe的路径加入环境变量。
加入的环境变量为C:\Program Files (x86)\HP\LoadRunner\bin
2. 添加Windows计划任务程序
添加过程不再赘述,执行上述批处理命令即可。可以设置为每日、每周、每月定时运行。
如果公司有Jenkins环境,可以实现持续集成。
版权声明:本文出自51Testing会员Leon投稿。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
相关推荐: