Web Service接口自动化测试框架

发表于:2016-7-21 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Leon    来源:51Testing软件测试网会员

  选择需要传参,且不为空的字段进行参数化。
  可以手工录入字段的默认值。
  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内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
相关推荐:
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号