lr接口压测_使用Loadrunner进行http接口压力测试

业务描述:

在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回。

使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据:

一.安装Loadrunner

本次测试过程使用Loadrunner 11.0版本。安装Loadrunner过程详见......

二.部署环境

1.接口服务器一台;

2.用于运行Loadrunner的压力测试机1台或N台 ,在条件允许下,尽可能提供高配置的CPU 和内存。

3.接口服务器和压力测试机建议应部署于同一个局域网内,否则测试过程和结果将受到网络带宽因素的影响无法顺利进行。

三.编写测试脚本

方法一. 通过java编写测试类,以jar包的方式引入Loadrunner进行测试。

优点:便于解析接口响应结果,同时避免由于LR脚本编写不规范或配置问题,导致测试过程引发的未知错误。

条件:运行loadrunner的机器需要安装jdk1.6的版本。

1.编写java测试类: CTLPTest.java,如下代码

1 packagecom;2

3 importjava.io.InputStream;4 importjava.net.HttpURLConnection;5 importjava.net.URL;6 importjava.util.Random;7

8 public classCTLPTest9 {10 public static voidmain(String[] args)11 {12 CTLPTest lbs = newCTLPTest();13 String ltpUrl =lbs.ltpRequestUrl();14 System.out.println(ltpUrl);15 System.out.println(lbs.ltpRequest(ltpUrl));16 }17

18 public intltpRequest(String ltpRequestUrl)19 {20 int returnCount = -1;21 try

22 {23 URL url = newURL(ltpRequestUrl);24 //http连接

25 HttpURLConnection http =(HttpURLConnection)url.openConnection();26 http.setUseCaches(false);27 http.connect();28 //获取http响应流

29 InputStream in =http.getInputStream();30 //解析响应流

31 byte[] b = new byte[in.available()];32 in.read(b);33 //将响应流转换成字符串

34 String res = newString(b);35 //根据实际情况,判断响应结果,并设置返回值

36 int of = res.indexOf("sucess");37 if (of < 0) {38 returnCount = -1;39 } else{40 returnCount = 1;41 }42 } catch(Exception e) {43 returnCount = -1;44 }45 returnreturnCount;46 }47

48 publicString ltpRequestUrl() {49 StringBuilder param = new StringBuilder("http://192.168.100.205:8055/CTLP/LtpRequest.json?Imsi=");50 param.append("userid-1");51 param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4");52 returnparam.toString();53 }54 }

View Code

2.将测试类导出为jar包 : LTPRequest.jar

过程略.

3.Loadrunner创建java测试类

图1:

图2:创建java协议脚本1

图3:创建java协议脚本2

图4:创建java协议脚本3

图5:设置环境变量

图6:设置安装的jdk位置目录

图7:导入jar包

图8:编写脚本内容

1 packagecom;2

3 importjava.io.InputStream;4 importjava.net.HttpURLConnection;5 importjava.net.URL;6

7 public classCTLPTest8 {9 public static voidmain(String[] args)10 {11 CTLPTest lbs = newCTLPTest();12 String ltpUrl =lbs.ltpRequestUrl();13 System.out.println(ltpUrl);14 System.out.println(lbs.ltpRequest(ltpUrl));15 }16

17 public intltpRequest(String ltpRequestUrl)18 {19 int returnCount = -1;20 try

21 {22 URL url = newURL(ltpRequestUrl);23 //http连接

24 HttpURLConnection http =(HttpURLConnection)url.openConnection();25 http.setUseCaches(false);26 http.connect();27 //获取http响应流

28 InputStream in =http.getInputStream();29 //解析响应流

30 byte[] b = new byte[in.available()];31 in.read(b);32 //将响应流转换成字符串

33 String res = newString(b);34 //根据实际情况,判断响应结果,并设置返回值

35 boolean of = res.contains("\"state\":1");36 if(of) {37 returnCount = 1;38 } else{39 returnCount = 0;40 }41 } catch(Exception e) {42 returnCount = -1;43 }44 returnreturnCount;45 }46

47 publicString ltpRequestUrl() {48 StringBuilder param = new StringBuilder("http://192.168.100.205:8055/CTLP/LtpRequest.json?Imsi=");49 param.append("userid-1");50 param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4");51 returnparam.toString();52 }53 }

View Code

图9:试运行,查看结果

说明:至此,完成了java脚本的编写和基本测试,接下来我们就可以使用loadrunner的进行压力测试了。

四.压力测试

图1:选择压力测试

图2:打开步骤三中创建的java脚本目录

图3:压力测试设置界面总览

图4:设置开启并发用户数及压入频率

说明:单位时间内压入的并发用户数设置的用户数值越大,压力越大,根据测试实际需要调整。

图5:设置压力峰值持续时间

图6:设置单位时间内减少并发用户数(根据实际需要,也可以选择Simultaneously,达到时间后直接停止)

图7:点击"Start Scenario"按钮开始运行测试

图8:运行结果:

图9:分析结果(可以保存各项性能指标数据到文件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值