LoadRunner JAVA Vuser接口测试
注:JDK只支持1.6
1、创建工程Test
2、写个经典的HelloWorld类。
3、Runas---》Java Application运行下
4、将工程下的整个com包拷贝到loadrunner安装目录下的classes目录下。例如我的是:D:\Program Files\HP\LoadRunner\classes
5、新建Virtual User:选Java Vuser
6、生成脚本Vuser_init和vuser_end不用管在Actions里写测试脚本
7、运行脚本结果,看到如图红色部分,说明脚本运行成功了。
示例:
1、JAVA代码:
需要引用json、dom4j外部包
package com.lr.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class CloudTestScr
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
String get = "";String result = "";
CloudTestScr CloudTestScr = new CloudTestScr();
get = "http://was.wondershare.com/v1/?method=app.info.upgrade&app_id=com.wondershare.mobilego&client_sign={6D56BE6F-A0C1-4E81-BA91-1AD25EFA3A9E}&lang=en-US&member_id=T5CD48D5F021EA0507&sku=sku-ween×tamp=1415865275&key=47342D1BEE153385294760BDDB8A7F49&vc=5817d988bce3a3f9e509e8615d1d7cc4";
result = getHttpByUrl(get);
System.out.println(result);
String test1 = getJosnsString(result, "apps");
System.out.println(test1);
String test2 = getJosnsarray(test1, 0);
System.out.println(getJosnsString(test2, "app_id"));
}
public static String postHttpByUrl(String address, String param)
{
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try
{
URL realUrl = new URL(address);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
result += line;
}
}
catch (Exception e)
{
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally
{
try
{
if (out != null)
{
out.close();
}
if (in != null)
{
in.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
return result;
}
public static String getHttpByUrl(String address, String param)
{
String res = "";
try
{
String urlString = address + "?" + param;
URL url = new URL(urlString);
java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url
.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "UTF-8"));
String line;
if (in != null)
{
while ((line = in.readLine()) != null)
{
res += line;
}
}
in.close();
conn.disconnect();
}
catch (MalformedURLException e)
{
System.out.println("get异常");
e.printStackTrace();
}
catch (IOException e)
{
System.out.println("get异常");
e.printStackTrace();
}
// System.out.println(res);
return res;
}
public static String getJosnsString(String s, String keyString)
{
String value = s, key = "", key2 = keyString;
JSONObject jsonString;
JSONArray jsonArray;
// key值为空,回调结束
if (keyString.equals(""))
{
return s;
}
try
{
if (value.substring(0, 1).equals("["))
{
jsonArray = new JSONArray(value);
value = jsonArray.get(0).toString().trim();
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
try
{
if (value.substring(0, 1).equals("{"))
{
if (keyString.contains("/"))
{
key = keyString.substring(0, keyString.indexOf("/"));
key2 = keyString.substring(keyString.indexOf("/") + 1);
}
else
{
key = keyString;
key2 = keyString;
}
jsonString = new JSONObject(value);
value = jsonString.get(key).toString().trim();
}
else
{
System.out.println("no json");
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
// e.printStackTrace();
}
if (keyString.contains("/"))
{
return getJosnsString(value, key2);
}
else
{
return value;
}
}
public static String getJosnsarray(String jsonString, int index)
{
String value = "";
JSONArray jString;
try
{
jString = new JSONArray(jsonString);
value = jString.get(index).toString();
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
value = "jsonstring not found key";
}
return value;
}
public static String getXmlString(String XmlString, String keyString)
{
String value = "";
Document document;
try
{
document = DocumentHelper.parseText(XmlString);
// Element root = document.getRootElement();
Element foo = null;
@SuppressWarnings("unchecked")
List<Element> list = document.selectNodes(keyString);
// List list=root.elements("status");
for (int i = 0; i < list.size(); i++)
{
foo = list.get(i);
value += foo.getText();
}
// System.out.print(value);
}
catch (DocumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return value.trim();
}
public static String getString(String httpRes, String keyString)
{
String fristchar = "";
fristchar = httpRes.substring(0, 1);
if (fristchar.equals("<"))
{
return getXmlString(httpRes, keyString);
}
else if (fristchar.equals("{"))
{
// System.out.println(keyString.substring(keyString.lastIndexOf("/")+1));
return getJosnsString(httpRes,
keyString.substring(keyString.lastIndexOf("/") + 1));
}
return "不是合法的输入" + httpRes;
}
}
LR代码:
/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description:
*
*/
import lrapi.lr;
import com.lr.test.*;
public class Actions
{
public int init() throws Throwable {
return 0;
}//end of init
public int action() throws Throwable {
String brand ="<brand>";
//String email ="email";
String serial_number ="<serial_number>";
String address_url ="http://192.168.9.51:8080/MobileGo/interface/index.php/v1/luckydraw?brand="+brand+"&email=jiangyfll@wondershare.cn&serial_number="+serial_number+"×tamp=144913561&vc=7e62bf6a3457d1342ef203ae688202b";
//String address_url ="http://192.168.9.51:8080/MobileGo/interface/index.php/v1/luckydraw?brand="+brand+"&email="+email+"&serial_number="+serial_number+"×tamp=144913561&vc=7e62bf6a3457d1342ef203ae688202b";
String result = "";
lr.rendezvous("ReadGO");
lr.start_transaction("luckydraw");
lr.start_sub_transaction("winning","luckydraw");
lr.start_sub_transaction("L_winning","luckydraw");
lr.start_sub_transaction("participated","luckydraw");
result = CloudTestScr.getHttpByUrl(address_url);
//中大奖
if(!CloudTestScr.getString(result,"award_no").equals("12") && CloudTestScr.getString(result,"result").equals("winning")){
lr.end_transaction("luckydraw", lr.PASS);
lr.end_sub_transaction("winning", lr.PASS);
lr.end_sub_transaction("participated", lr.FAIL);
lr.end_sub_transaction("L_winning",lr.FAIL);
lr.error_message(serial_number);
//幸运奖
}else if (CloudTestScr.getString(result,"award_no").equals("12") && CloudTestScr.getString(result,"result").equals("winning")){
lr.end_transaction("luckydraw", lr.PASS);
lr.end_sub_transaction("winning", lr.FAIL);
lr.end_sub_transaction("L_winning",lr.PASS);
lr.end_sub_transaction("participated", lr.FAIL);
lr.error_message(serial_number);
//抽过奖
}else if(CloudTestScr.getString(result,"result").equals("participated")){
lr.end_transaction("luckydraw", lr.FAIL);
lr.end_sub_transaction("winning", lr.FAIL);
lr.end_sub_transaction("L_winning",lr.FAIL);
lr.end_sub_transaction("participated", lr.PASS);
lr.error_message(serial_number);
}else{
lr.error_message(result);
lr.end_transaction("luckydraw", lr.FAIL);
lr.end_sub_transaction("winning", lr.FAIL);
lr.end_sub_transaction("L_winning",lr.FAIL);
lr.end_sub_transaction("participated", lr.FAIL);
}
return 0;
}//end of action
public int end() throws Throwable {
return 0;
}//end of end
}
LoadRunner JAVA Vuser接口测试的更多相关文章
- 【原创】LoadRunner Java Vuser脚本的配置和调试指南
1 编写目的 本文介绍了Loadrunner多负载压力机的配置,并通过测试Java Vuser的数据库连接脚本对配置结果进行了验证,同时对配置过程中遇到的问题和解决的过程进行了记录,关于Java数据库 ...
- 【原创】LoadRunner Java Vuser开发环境配置指南
1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...
- LoadRunner系列之—-03 用Java Vuser协议编写接口测试脚本
待测试接口用java语言实现,且项目中调用该接口需要用专门的jar包.这种情况可以用Java Vuser协议实现接口调用脚本,类似java代码. 代码样例如下: /* * LoadRunner Jav ...
- loadrunner之Java Vuser协议脚本编写
步骤:1.根据自己使用的lr版面选择jdk 1)LR11 1.6 32位 2)LR12 1.7 32位 2.安装好jdk,并搭建java环境变量,安装好java代码编写工具 3.在sr ...
- LR接口测试---Java Vuser之增删改查
import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- Loadrunner 11 中的Java Vuser
Java vuser是自定义的java虚拟用户脚本,脚本中可以使用标准的java语言. 1.安装jdk 注意,lr11最高支持jdk1.6 2.配置环境变量 3.在lr中选择java vuser协议 ...
- loadrunner11中java vuser引用jar包
1.创建工程,新建类,HelloWorld.java,代码如下: package com.liuke; public class HelloWorld { public String getHello ...
- LR之Java Vuser
虽然LR对C有较好的支持,但有时使用Java Vuser会更方便,以下描述通过LR来编写Java脚本以及调用jar包的基本步骤. 1.安装配置java环境 LR的java vuser脚本的执行依赖于 ...
- loadrunner java / JAVA_HOME / CLASSPATH / PATH
s Loadrunner 9.5/11 java vuser环境配置问题(已解决) http://blog.csdn.net/achang21/article/details/45540483 Loa ...
随机推荐
- synchronized与Lock的区别与使用
1.ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象obj的锁定,假设A获取了对象obj锁,B将等待A ...
- 音乐app各部分笔记(一)
7-11 播放器播放时间获取和更新 1.audio 有一个 ontimeupdate事件 播放过程中 随时触发 vue里面就是 @timeupdate 事件中有默认参数 e 通过e.targe ...
- android 组建添加透明度
给TextView添加透明度,起初用的方法是android:alpha = "0.3" 添加后,文字显示也有点透明发虚,后来改成设置background,然后 backgroun ...
- 为什么要重写equals和hashcode方法
equals hashcode 当新建一个java类时,需要重写equals和hashcode方法,大家都知道!但是,为什么要重写呢? 需要保证对象调用equals方法为true时,hashcode ...
- CentOS6源码安装VSFTPD3
还是碰到老问题:安全扫描,由于CentOS6上VSFTPD最高支持到V2.2.2,目前已经是官方支持的最新版本(发布了几年...) 但有安全漏洞,又没法通过限制访问进行控制,只能想办法升级到最新版本了 ...
- Zynq-Linux移植学习笔记之27UIO机制响应外部中断实现【转】
转自:https://blog.csdn.net/zhaoxinfan/article/details/80285150 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...
- vue 选城市三级联动
<div id="example"> <select v-model="prov"> <option v-for="op ...
- 二层环路保护,RRPP多环的配置
作者:邓聪聪 组网需求: 局域网中,由A/B/C/D构成RRPP域1换网络结构,要求环网机构中的任意两条线路中断都不能影响业务. 配置思路: 环路由两部分组成,ring1.ring2,B为环1的主节点 ...
- C# List 作为参数传递的值变化
一.示例演示 namespace TestConsole { class Program { static void Main(string[] args) { Console.WriteLine(& ...
- linux系统常用运维命令
目录/文件处理命令 mkdir dirname 创建文件夹 mkdir -p /tmp/a/b 递归创建目录 rm -rf dirname 删除目录及内 ...