loadrunner之Java Vuser协议脚本编写
步骤:
1、根据自己使用的lr版面选择jdk
1)LR11 1.6 32位
2)LR12 1.7 32位
2、安装好jdk,并搭建java环境变量,安装好java代码编写工具


3、在src下创建一个包(我的是com.md5),将需要的jar文件放在lib目录下(没有的自己创建)

4、在包下放HttpClientRequest方法类、MD5算法类

5、写好Md5Request.java
6、将com.md5打包成jar文件md5_test.jar
file-->Project Structure-->Artifacts-->JAR






7、在lr新建java Vuser协议的脚本

8、在runtime setting 的classpath中添加jar文件:
1)lib中的jar文件
2)jdk安装目录lib下的dt.jar和tools.jar
3)自己打包的md5_test.jar

9、最后将Md5Request.java里面的代码复制到lr的action方法中

lr代码如下:
/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description:
*
*/ import lrapi.lr;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.codehaus.jettison.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
//引入md5文件
import com.md5.MD5;
//引入HttpClientRequest文件
import com.md5.HttpClientRequest; public class Actions
{ public int init() throws Throwable {
return ;
}//end of init public int action() throws Throwable {
//调用md5加密算法 将密码加密 重置密码时传参要用
String md5pwd = MD5.GetMD5Code("");
lr.start_transaction("登录");
//登录
String loginRequest = HttpClientRequest.sendPost("http://192.168.145.130:8080/mobile/api/user/login","{\"mobile\":\"18705092505\",\"password\":\"123456\"}");
System.out.println("登录响应数据:"+loginRequest);
//创建JSONObject对象,获取登录响应数据loginRequest
JSONObject loginRusult = new JSONObject(loginRequest);
//获取code
int loginCode = (int)loginRusult.get("code");
if (loginCode == ){
lr.end_transaction("登录", lr.PASS);
}else {
lr.end_transaction("登录", lr.FAIL);
}
//获取token
String token = (String)loginRusult.getJSONObject("data").get("token"); //重置密码 并判断是否成功
String resetpaypwd = HttpClientRequest.sendPost("http://192.168.145.130:8080/mobile/api/user/resetpaypwd","{\"token\":\""+token+"\",\"password\":\""+md5pwd+"\"}");
System.out.println("重置密码响应数据:"+resetpaypwd); //将token转换成URLcode
String URLcode ="";
try {
URLcode = URLEncoder.encode(token,"UTF-8");
System.out.println("URLcode:"+URLcode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
lr.start_transaction("获取订单列表");
//获取订单列表
String queryRequest = HttpClientRequest.sendGet("http://192.168.145.130:8080/mobile/api/order/getorders?","offset=0"+"&"+"size=15"+"&"+"token="+URLcode); JSONObject queryRusult = new JSONObject(queryRequest);
int orderListCode = (int) queryRusult.get("code");
if (orderListCode == ){
lr.end_transaction("获取订单列表", lr.PASS);
}else {
lr.end_transaction("获取订单列表", lr.FAIL);
}
return ;
}//end of action public int end() throws Throwable {
return ;
}//end of end
}
过程中遇到的问题:在idea工具运行代码没有问题,在lr运行报错如下

解决如下:
原因:返回的响应编码问题
解决:在HttpClientRequest的sendGet请求中读取响应加上utf-8编码格式

loadrunner之Java Vuser协议脚本编写的更多相关文章
- [LoadRunner]性能测试实践_Hessian协议脚本编写
第一步,新建LR的脚本,选择Java Vuser协议: 第二步,编写hessian测试脚本,如下: import lrapi.lr; import java.net.MalformedURLExcep ...
- [LoadRunner]性能测试实践_Hessian协议脚本编写2
协议选取和运行配置请参考:http://www.cnblogs.com/whylaughing/p/5430821.html 这次直接贴代码让大家参考: import lrapi.lr; import ...
- LoadRunner系列之—-03 用Java Vuser协议编写接口测试脚本
待测试接口用java语言实现,且项目中调用该接口需要用专门的jar包.这种情况可以用Java Vuser协议实现接口调用脚本,类似java代码. 代码样例如下: /* * LoadRunner Jav ...
- Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...
- loadrunner之WebServices协议脚本编写(三种请求模式)
以天气预报网站为例:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 一.web_service_call模式 步骤如下 ...
- java+selenium自动化脚本编写
实训项目:创盟后台管理,页面自动化脚本编写 使用工具:java+selenium 1)java+selenium环境搭建文档 2)创盟项目后台管理系统链接 java+selenium环境搭建 一.Se ...
- linux系统下运行java项目的脚本编写
本文主要讲linux系统下运行jar包,至于如何打包jar包,放到linux系统下可以参考其他的博客. 在linux系统下运行jar包的命令如下: 1.java -jar xxxxx.jar // ...
- 【LoadRunner】LR编写Dubbo协议脚本
一.Dubbo服务简介 Dubbo是一个分布式服务架构,把核心业务抽取出来作为独立的服务,使前端应用能更快速和稳定的响应. Dubbo服务工作原理:服务提供方提供接口,并提供接口的实现,提供方注册服务 ...
- Loadrunner 11 中的Java Vuser
Java vuser是自定义的java虚拟用户脚本,脚本中可以使用标准的java语言. 1.安装jdk 注意,lr11最高支持jdk1.6 2.配置环境变量 3.在lr中选择java vuser协议 ...
随机推荐
- 2017-2018-2 1723《程序设计与数据结构》实验四 & 实验五 & 课程总结 总结
作业地址 实验四作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1943 提交情况如图: 实验五作业:https://edu ...
- PHP利用GD库处理图片方法实现
这里写的是完成每个功能的函数,可以复制单个函数直接使用,这里的每个函数都是另外一篇PHP常用类------图片处理类Image当中的方法进行细化,可以参考一下 废话不多说,直接付代码吧! 添加水印(文 ...
- Activiti reassign task to another user
//早先胡乱尝试的其他方法,可能对于以后深入学习Activiti有些用处. //taskService.delegateTask(taskId, receiveUserId); //taskServi ...
- activiti-ldap-integration
https://stackoverflow.com/questions/19488764/activiti-ldap-integration https://community.alfresco.co ...
- Notepad++和Sublime单词首字符大小写转化问题
- 破解xlsm文件的VBA项目密码和xlsx的工作簿保护密码
工具 待破解的xlsm文件.Excel2010.Hex Editor 步骤 1.修改.xlsm后缀为.zip 2.使用压缩软件打开,进入xl目录找到vbaProject.bin文件,解压出来 3.使用 ...
- linux需要你的不懈努力
自己二十几年的求学生涯,总结出:天赋固然重要,但是最为重要的还是要有一个持之以恒的心,而且还要有科学的学习方法,不只是针对今天的主题linux,无论我们从事什么行业这都是不变的法则. 刚刚从一个稚嫩的 ...
- Uva101-STL模拟
一道有点复杂的STL模拟题,对STL迭代器不太熟悉改了好久,最后总算A了出来. 感觉用数组更方便...但是为了练习STL嘛 对比白书上的代码,我写的还是傻了点.一开始没有理解四个操作的意思,单纯的模拟 ...
- codeforces 1B Spreadsheets
In the popular spreadsheets systems (for example, in Excel) the following numeration of columns is u ...
- Leetcode 20.有效的括号 By Python
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...