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时,也 ...
随机推荐
- Centos 7 编译nginx 1.14.0
步骤一:下载nginx安装包 wget https://nginx.org/download/nginx-1.14.0.tar.gz 步骤二:安装nginx依赖包 yum install -y gcc ...
- CSS--基础块级元素与内联元素
在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素.在HTML和XHTML中,块级元素不能继承自行内元素(即不能嵌套在行内元素),<p&g ...
- 条款22:将成员变量声明为private(Declare data members private)
NOTE: 1.切记将成员变量声明为private.这可赋予客户访问数据的一致性 可细微划分访问控制 允诺约束条件获得保证,并提供class作者以充分的实现弹性. 2.protected 并不比pub ...
- Python能干啥?
Python之py9 Python之py9-录音自动下载 Python之py9-py9作业检查 Python之py9-py9博客情况获取 Python之py9-微信监控获取mp3_url Python ...
- (二十一)python 3 内置函数
阅读目录 1.abs() 2.dict() 3.help() 4.min() 5.setattr() 6.all() 7.dir() 8.hex() 9.next() 10.slice() 11.an ...
- python基础003
1. list 1.1 基础 list是一组有序的集合序列,可以包含任何类型且不必相同,并支持嵌套.采用如下创建方式: li = ["spam",2.0,5,[10,20]] 列表 ...
- 04--activiti demo
核心API1:ProcessEngine说明:1) 在Activiti中最核心的类,其他的类都是由他而来.2) 产生方式: ProcessEngine processEngine = ProcessE ...
- LeetCode(26) Remove Duplicates from Sorted Array
题目 Given a sorted array, remove the duplicates in place such that each element appear only once and ...
- 【瞎扯】我的OI之路
这里大概是一些我自己对我的OI之路的一些记录. 2015.11不知道哪一天-- 我听说了"编程". 当时还不懂得啥是信息学竞赛,以为这只是纯粹的程序设计.后来才明白信息学竞赛是算法 ...
- jquery怎么获得ul中li的个数