使用Loadrunner进行http接口压力测试.docx
《使用Loadrunner进行http接口压力测试.docx》由会员分享,可在线阅读,更多相关《使用Loadrunner进行http接口压力测试.docx(15页珍藏版)》请在冰豆网上搜索。
![使用Loadrunner进行http接口压力测试.docx](https://file1.bdocx.com/fileroot1/2022-11/15/406a8b96-393f-4e89-87f4-90c9202399bf/406a8b96-393f-4e89-87f4-90c9202399bf1.gif)
使用Loadrunner进行http接口压力测试
使用Loadrunner进行http接口压力测试
业务描述:
在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回。
使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据:
一.安装Loadrunner
本次测试过程使用Loadrunner11.0版本。
安装Loadrunner过程详见......
二.部署环境
1.接口服务器一台;
2.用于运行Loadrunner的压力测试机1台或N台,在条件允许下,尽可能提供高配置的CPU和内存。
3.接口服务器和压力测试机建议应部署于同一个局域网内,否则测试过程和结果将受到网络带宽因素的影响无法顺利进行。
三.编写测试脚本
方法一.通过java编写测试类,以jar包的方式引入Loadrunner进行测试。
优点:
便于解析接口响应结果,同时避免由于LR脚本编写不规范或配置问题,导致测试过程引发的未知错误。
条件:
运行loadrunner的机器需要安装jdk1.6的版本。
1.编写java测试类:
CTLPTest.java,如下代码
1packagecom;
2
3importjava.io.InputStream;
4import.HttpURLConnection;
5import.URL;
6importjava.util.Random;
7
8publicclassCTLPTest
9{
10publicstaticvoidmain(String[]args)
11{
12CTLPTestlbs=newCTLPTest();
13StringltpUrl=lbs.ltpRequestUrl();
14System.out.println(ltpUrl);
15System.out.println(lbs.ltpRequest(ltpUrl));
16}
17
18publicintltpRequest(StringltpRequestUrl)
19{
20intreturnCount=-1;
21try
22{
23URLurl=newURL(ltpRequestUrl);
24//http连接
25HttpURLConnectionhttp=(HttpURLConnection)url.openConnection();
26http.setUseCaches(false);
27http.connect();
28//获取http响应流
29InputStreamin=http.getInputStream();
30//解析响应流
31byte[]b=newbyte[in.available()];
32in.read(b);
33//将响应流转换成字符串
34Stringres=newString(b);
35//根据实际情况,判断响应结果,并设置返回值
36intof=res.indexOf("sucess");
37if(of<0){
38returnCount=-1;
39}else{
40returnCount=1;
41}
42}catch(Exceptione){
43returnCount=-1;
44}
45returnreturnCount;
46}
47
48publicStringltpRequestUrl(){
49StringBuilderparam=newStringBuilder("http:
//192.168.100.205:
8055/CTLP/LtpRequest.json?
Imsi=");
50param.append("userid-1");
51param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4");
52returnparam.toString();
53}
54}
ViewCode
2.将测试类导出为jar包:
LTPRequest.jar
过程略.
3.Loadrunner创建java测试类
图1:
图2:
创建java协议脚本1
图3:
创建java协议脚本2
图4:
创建java协议脚本3
图5:
设置环境变量
图6:
设置安装的jdk位置目录
图7:
导入jar包
图8:
编写脚本内容
1packagecom;
2
3importjava.io.InputStream;
4import.HttpURLConnection;
5import.URL;
6
7publicclassCTLPTest
8{
9publicstaticvoidmain(String[]args)
10{
11CTLPTestlbs=newCTLPTest();
12StringltpUrl=lbs.ltpRequestUrl();
13System.out.println(ltpUrl);
14System.out.println(lbs.ltpRequest(ltpUrl));
15}
16
17publicintltpRequest(StringltpRequestUrl)
18{
19intreturnCount=-1;
20try
21{
22URLurl=newURL(ltpRequestUrl);
23//http连接
24HttpURLConnectionhttp=(HttpURLConnection)url.openConnection();
25http.setUseCaches(false);
26http.connect();
27//获取http响应流
28InputStreamin=http.getInputStream();
29//解析响应流
30byte[]b=newbyte[in.available()];
31in.read(b);
32//将响应流转换成字符串
33Stringres=newString(b);
34//根据实际情况,判断响应结果,并设置返回值
35booleanof=res.contains("\"state\":
1");
36if(of){
37returnCount=1;
38}else{
39returnCount=0;
40}
41}catch(Exceptione){
42returnCount=-1;
43}
44returnreturnCount;
45}
46
47publicStringltpRequestUrl(){
48StringBuilderparam=newStringBuilder("http:
//192.168.100.205:
8055/CTLP/LtpRequest.json?
Imsi=");
49param.append("userid-1");
50param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4");
51returnparam.toString();
52}
53}
ViewCode
图9:
试运行,查看结果
说明:
至此,完成了java脚本的编写和基本测试,接下来我们就可以使用loadrunner的进行压力测试了。
四.压力测试
图1:
选择压力测试
图2:
打开步骤三中创建的java脚本目录
图3:
压力测试设置界面总览
图4:
设置开启并发用户数及压入频率
说明:
单位时间内压入的并发用户数设置的用户数值越大,压力越大,根据测试实际需要调整。
图5:
设置压力峰值持续时间
图6:
设置单位时间内减少并发用户数(根据实际需要,也可以选择Simultaneously,达到时间后直接停止)
图7:
点击"StartScenario"按钮开始运行测试
图8:
运行结果:
图9:
分析结果(可以保存各项性能指标数据到文件)