LoadRunner系列之—-01 接口压力测试脚本

摘要:
Random=1483694327031“,”Resource=0“,使用web_submit_data函数,可以使用函数(web_add_auto_header)[方法1]:使用web_ssubmit_data()web_submit _data(“insert”,“Name=UserID”,使用web_custom_request()//更容易拼接参数字符[1000];

 LoadRunner中一般用如下函数进行接口测试:

<一>. http或soap协议下的get请求接口,样例如下:

web_url("integrated_query.jsp", 
"URL=http://{UrlAddress}/pcis/policy/query/integrated_query.jsp?CASOPDPT=00&random=1483694327031", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=http://{UrlAddress}/pcis/core/left.jsp?opCde=015", 
"Snapshot=t8.inf", 
"Mode=HTML", 
EXTRARES, 
LAST);

<二>.. http或soap协议下的post请求接口,用web_submit_data函数,web_custom_request函数

1. 有时需用到(web_reg_save_param)或(web_reg_find)函数,来判断接口请求的结果

2. 接口中有要求添加特殊的信息头,则可用函数(web_add_auto_header)

【方法一】:使用web_submit_data()

web_submit_data("insert", 
  "Action=http://116.211.23.123/SNS/Publish.htm ",       
  "Method=POST",       
  "Referer=http://116.211.23.123/SNS/Publish.htm ", 
   "Mode=HTML",       
ITEMDATA, 
   "Name= SNSID ","Value=6601",ENDITEM,       
  "Name= UserID ","Value=123",ENDITEM,       
  "Name= CommentsTypeID ","Value=1",ENDITEM,       
  "Name= CommentsID ","Value=456",ENDITEM,        
  "Name= AuthorID","Value=789",ENDITEM, 
   "Name= CommentsContent ","Value=Just for testing",ENDITEM, 
LAST);

【方法二】:使用web_custom_request()

//更利于拼接参数
char str[1000]; 

strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1"); 
web_add_auto_header("channel_id","1");
web_custom_request("Publish", 
  "Url= http://116.211.23.123/SNS/Publish.htm", 
  "Method=POST", 
  "Referer=http://116.211.23.123/SNS/Publish.htm", 
  "Mode=HTTP", 
  str, 
  LAST);

方法一:适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下;

方法二、如果xml结构比较复杂,比如说根元素下面有很多子元素,或者xml树结构分叉较多的时候

<三>.. webservices 接口

【方法一】 通过web_service_call函数,也就是导入wsdl文件或者URL的方式;

1). New Virtual user---选择 WebServices;

2). 在页面左上角,工具栏下,点击Manager Services,点击Import,录入wsdl的URL;

3). 点击Add Service Call,在New Web Service Call 页面中选择Service, Operation,其中需填写  BEGIN_ARGUMENTS、 END_ARGUMENTS、BEGIN_RESULT、END_RESULT。用的函数为web_service_call,

注意:

1). 请求地址可以在Manage Services 里面修改,如下图所示:

LoadRunner系列之—-01 接口压力测试脚本第1张

2)。 如果请求报文内容放在 CDATA中间,例如 其中包含【 <arg0><![CDATA[document]]></arg0>】,那么在web_service_call 函数中需要删除 <![CDATA[ ]]>部分

LoadRunner系列之—-01 接口压力测试脚本第2张

【方法二】 通过soap_request函数,通过导入xml文件来实现;

soap_request("StepName=SOAP Request",
"URL=http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx",
"SOAPEnvelope="
"<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:web="http://WebXml.com.cn/">"
"<soapenv:Header></soapenv:Header>"
"<soapenv:Body>"
"<web:getSupportCityString>"
"<web:theRegionCode>?</web:theRegionCode>"
"</web:getSupportCityString>"
"</soapenv:Body>"
"</soapenv:Envelope>",
"SOAPAction=",
"ResponseParam=response",
"Snapshot=t1320736948.inf",
LAST);

【方法三】 通过http协议来手写脚本来实现。

注意:

1).  在一个方法中的某个参数,如果太长,需要换行,则每行单独用双引号括起来;

2).  获取response 中结果

int i, NumOfValues;

char buf[64];

 

lr_output_message(lr_eval_string("{response}"));

 

NumOfValues= lr_xml_get_values("XML={response}", 
"ValueParam=OutputParam", 
"Query=/soap:Envelope/soap:Body/ns1:inquireResponse/return",//xml 位置
"SelectAll=yes", LAST);


for ( i = 0; i < NumOfValues; i++) { /* Print multiple values of OutputParam */

sprintf (buf, "Retrieved value %d : {OutputParam_%d}", i+1, i+1);
lr_output_message(lr_eval_string(buf));
}

小知识

.  LR脚本创建后,会默认每个Action为一个事务,这样会出现自己定义了一个事务,但是执行后会多出很多事务。这个设置需要根据具体脚本需求,来决定是否使用该项(本例子中,就不需要)。“Vuser”-->“运行时设置”-->“其它”中,“每个Action定义为一个事务(D)”该复选框控制。

LoadRunner系列之—-01 接口压力测试脚本第3张

免责声明:文章转载自《LoadRunner系列之—-01 接口压力测试脚本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用plist建立UITabControllerpaper 72 :高动态范围(HDR)图像 HDR (High Dynamic Range)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

wsse:InvalidSecurity Error When Testing FND_PROFILE Web Service in Oracle Applications R 12.1.2 from SOAP UI (Doc ID 1314946.1)

wsse:InvalidSecurity Error When Testing FND_PROFILE Web Service in Oracle Applications R 12.1.2 from SOAP UI (Doc ID 1314946.1) Modified: 10-Nov-2013 Type: PROBLEM  ...

php发送get、post请求的几种方法

方法1: 用file_get_contents 以get方式获取内容 1 <?php 2 $url='http://www.domain.com/'; 3 $html = file_get_contents($url); 4 echo $html; 5 ?> 方法2: 用fopen打开url, 以get方式获取内容 1 &l...

Asp.NET导出Excel文件乱码解决若干方法 (转)

  Asp.NET导出Excel文件乱码解决若干方法 在Asp.NET开发过程中经常会将一些列表项目导出为Excel方便用户查看和保存,但是也经常遇到文件名乱码、文件内容乱码等问题。最近我也接到了这样的Bug,现总结了若干个解决办法,供遇到问题的朋友们参考一下。希望以下的某些方法可以解决您的问题。   程序逻辑及问题  前端点击导出Excel之后,从后台...

C++ 类的存储方式以及虚函数表

一、C++成员函数在内存中的存储方式   用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如下图所示。         能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去...

IE6中location不跳转问题

前天一我遇到个看似很诡异的问题,就是<a href="javascript:void(0);" onclick="window.location.href=url"></a>在IE6下面没反应,不跳转到onclik事件中的"window.location.href"。 当时我们在网上找了篇文章很快就解决了,但是文章中没有说明具体原因在...

重写ResultSet实现分页功能(最好的分页技术)(转)

1.首先定义一个接口Pageable 继承ResultSet这个类 并在接口中定义一些自己的方法,具体方法如下:  package com.page; import java.sql.ResultSet; public interface Pageable extends ResultSet {   /**返回总页数 */ int getPageCount...