博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Loadrunner之HTTP接口测试脚本实例
阅读量:5250 次
发布时间:2019-06-14

本文共 2559 字,大约阅读时间需要 8 分钟。

Loadrunner之HTTP接口测试脚本实例

  接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文结果与预期结果进行比对的过程,接口测试可以通过Java发送 http post或者get请求来实现,也可以通过loadrunner来实现,今天介绍下loadrunner接口自动化测试实例:

  loadrunner接口测试原理是web_submit_data函数发送post或者get请求,将测试用例数据进行参数化,使用关联获取响应的结果值,与预期结果进行比对,将过程中相关的参数保存到html文件中,从而实现接口自动化,实现代码如下:

1、Init部分:生成html格式文件,文件名称为 test _系统时间(%Y%m%d%H%M%S)_虚拟用户编号,并写入测试结果文件的html开始标识

  //定义结果文件变量

  long file;

  //定义虚拟用户编号变量

  char *vusernum;

  //定义测试结果变量

  char V_Result[1024];

  vuser_init()

  {

  //取得虚拟用户编号

  vusernum=lr_eval_string ("_{vuserid}");

  //取得系统时间

  lr_save_datetime("%Y%m%d%H%M%S", DATE_NOW, "now_date");

  //拼接测试结果文件名称

  strcpy(V_Result,"d://test/Result/test");

  strcat(V_Result,lr_eval_string("_{now_date}"));

  strcat(V_Result,vusernum);

  strcat(V_Result,".html");

  //生成并打开测试结果文件

  file=fopen(V_Result,"at+");

  //写入测试文件头部html信息

  strcpy(V_Result,"<html><table  border='1'><tr>< td>IMSI号码</td><td>预期值</td><td>返回值< /td><td>结果</td></tr>");

  fputs(V_Result,file);

  return 0;

  }

2、Action部分:从参数化文件读取测试参数和预期结果、发送请求并获得服务器返回实际结果,比较测试结果后写入测试结果文件。

  Action()

  {

  //测试结果文本

  char V_testres[1024];

  //定义返回结果是否正确变量

  int result;

  //取得IMSI号码

  char *V_imsi=lr_eval_string ("{IMSI}");

  //设置页面接收最大的字节数,该设置应大于服务器返回内容的大小

  web_set_max_html_param_len("20000");

  //取得服务器返回内容

  web_reg_save_param("filecontent",

  "LB=",

  "RB=",

  "Search=Body",

  LAST);

  //发送请求

  web_submit_data("login",

  "Action=http://host:port/autonavit/search?cmd=clientlogin&termver=5&termcode=30001&termdbver=3 ",

  "Method=POST",

  "RecContentType=text/html",

  "Referer=",

  "Snapshot=t9.inf",

  "Mode=HTTP",

  ITEMDATA,

  "Name=imsi", "Value={IMSI}", ENDITEM,

  LAST);

  //比较预期值和实际值是否相等

  result=strcmp(lr_eval_string("{YQJG}"),lr_eval_string("{filecontent}"));

  if ( result == 0 )

  {

  strcpy(V_testres,"通过");

  }

  else

  {

  strcpy(V_testres,"失败");

  }

  strcpy(V_Result,"<tr><td>");

  //写入测试参数

  strcat(V_Result,V_imsi);

  strcat(V_Result,"</td>");

  strcat(V_Result,"<td id='yq'>");

  //写入预期结果

  strcat(V_Result,lr_eval_string("{YQJG}"));

  strcat(V_Result,"</td>");

  strcat(V_Result,"<td id='sj'>");

  //写入实际结果

  strcat(V_Result,lr_eval_string("{filecontent}"));

  strcat(V_Result,"</td>");

  strcat(V_Result,"<td>");

  //写入测试是否通过

  strcat(V_Result, V_testres);

  strcat(V_Result,"</td></tr>");

  fputs(V_Result,file);

  return 0;

  }

3、End部分:写入测试结果文件尾部html信息,关闭文件并结束测试。

  vuser_end()

  {

  //结束并关闭文件

  strcpy(V_Result,"</table></html>");

  fputs(V_Result,file);

  fclose(file);

  return 0;

  }

 

转载于:https://www.cnblogs.com/TestWorld/p/5123278.html

你可能感兴趣的文章
linux php编译安装
查看>>
redis哨兵集群、docker入门
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
条件断点 符号断点
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>