LoadRunner系列之—-01 接口压力测试脚本
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[]; strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1");
web_add_auto_header("channel_id","");
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 里面修改,如下图所示:

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

【方法二】 通过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[];
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 = ; i < NumOfValues; i++) { /* Print multiple values of OutputParam */
sprintf (buf, "Retrieved value %d : {OutputParam_%d}", i+, i+);
lr_output_message(lr_eval_string(buf));
}
小知识
. LR脚本创建后,会默认每个Action为一个事务,这样会出现自己定义了一个事务,但是执行后会多出很多事务。这个设置需要根据具体脚本需求,来决定是否使用该项(本例子中,就不需要)。“Vuser”-->“运行时设置”-->“其它”中,“每个Action定义为一个事务(D)”该复选框控制。

LoadRunner系列之—-01 接口压力测试脚本的更多相关文章
- 使用Loadrunner进行http接口压力测试
业务描述: 在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回. 本文就讲述使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据: ...
- Python开发【笔记】:接口压力测试
接口压力测试脚本 1.单进程多线程模式 # #!/usr/bin/env python # # -*- coding:utf-8 -*- import time import logging impo ...
- 学习总结——JMeter做http接口压力测试
JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...
- 一次接口压力测试qps极低原因分析及解决过程
一次接口压力测试qps极低原因分析及解决过程 9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间 ...
- loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
使用loadrunner进行压力测试主要分两步,第一步是编写脚本(比较重点),第二步执行测试(配置都是在界面上点点就行了,当然我只的是比较简单的,能满足日常需要的),第三步分析结果(这一步比较高深,但 ...
- (转载)loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
原文出处:http://ajita.iteye.com/blog/1728243/ 先说明一下,本人是开发,对测试不是特别熟悉,但因工作的需要,也做过一些性能测试方面的东西.比较久之前很简单的用过,最 ...
- JMeter接口压力测试课程入门到高级实战
章节一压力测试课程介绍 1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介: 讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分 ...
- Postman接口&压力测试
Postman接口与压力测试实例 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.它提供功能强大的 Web API & HTTP 请求调试. 1.环境变量和全局 ...
- Loadrunner&Jemeter进行手机APP压力测试
一.loadrunner通过代理录制app脚本 随着手机APP的广泛应用,手机应用的使用已占据了大量的市场份额,尤其是优秀的手机APP,动辄用户过千万过亿,对于如此庞大的用户量,我们在开发APP时,也 ...
随机推荐
- JAVA用freemarker生成复杂Excel。(freemarker)
在生成Excel的时候,大多时候都是使用poi,jxl等进行的,但是对于复杂的Excel来说,这个工作量是非常的大的,而且,对于我这么懒的人来说,这是相当痛苦的一件事情,所以,我不得不找找有没有简单一 ...
- IOS学习笔记3—Objective C—简单的内存管理
今天简述一下简单的内存管理,在IOS5.0以后Apple增加了ARC机制(Automatic Reference Counting),给开发人员带来了不少的方便,但是为了能更好的理解IOS内存管理机制 ...
- 数论基础之组合数&计数问题
一.组合数:问题引入:现在有 n 个球,取其中的 k 个球,问一共有多少种方式?答案: 公式直观解释:我们考虑有顺序地取出 k 个球:第一次有 n 种选择,第二次有 n-1 种选择,...,第 k 次 ...
- Linux基础学习-Samba文件共享服务
使用Samba文件共享服务 Samba起源: 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了N ...
- 查看mysql二进制日志报错问题
在排查网站被黑时想通过Mysql二进制日志找出修改字段时间,但是使用mysqlbinlog报错: [root@zfszsw1 bin]# ./mysqlbinlog /opt/mysql-bin.00 ...
- @RestController 与 @Controller 注解区别
文章来源:https://www.cnblogs.com/hello-tl/p/9202658.html @RestController注解相当于@ResponseBody + @Controller ...
- php 链接 mongodb
1.下载phpmongodb 驱动:https://s3.amazonaws.com/drivers.mongodb.org/php/index.html 2.Precompiled binaries ...
- js总结(二):函数、作用域和this
function Container( properties ) { var objthis = this; for ( var i in properties ) { (function(){ // ...
- Python编译错误总结
1.TypeError: object() takes no parameters 如果你出现了这个报错,请检查你的__init__函数名或者其定义有没有写错.一般是把__init__写成了__int ...
- 一个爬取lativ诚衣网站上模特穿搭图片的爬虫
show the code: [peter@localhost savvy]$ vi lativ.py # -*- coding:utf-8 -*- import requests,lxml,os f ...