注: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&timestamp=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+"&timestamp=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+"&timestamp=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接口测试的更多相关文章

  1. 【原创】LoadRunner Java Vuser脚本的配置和调试指南

    1 编写目的 本文介绍了Loadrunner多负载压力机的配置,并通过测试Java Vuser的数据库连接脚本对配置结果进行了验证,同时对配置过程中遇到的问题和解决的过程进行了记录,关于Java数据库 ...

  2. 【原创】LoadRunner Java Vuser开发环境配置指南

    1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...

  3. LoadRunner系列之—-03 用Java Vuser协议编写接口测试脚本

    待测试接口用java语言实现,且项目中调用该接口需要用专门的jar包.这种情况可以用Java Vuser协议实现接口调用脚本,类似java代码. 代码样例如下: /* * LoadRunner Jav ...

  4. loadrunner之Java Vuser协议脚本编写

    步骤:1.根据自己使用的lr版面选择jdk 1)LR11   1.6   32位 2)LR12   1.7   32位 2.安装好jdk,并搭建java环境变量,安装好java代码编写工具 3.在sr ...

  5. LR接口测试---Java Vuser之增删改查

    import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  6. Loadrunner 11 中的Java Vuser

    Java vuser是自定义的java虚拟用户脚本,脚本中可以使用标准的java语言. 1.安装jdk 注意,lr11最高支持jdk1.6 2.配置环境变量 3.在lr中选择java vuser协议 ...

  7. loadrunner11中java vuser引用jar包

    1.创建工程,新建类,HelloWorld.java,代码如下: package com.liuke; public class HelloWorld { public String getHello ...

  8. LR之Java Vuser

    虽然LR对C有较好的支持,但有时使用Java Vuser会更方便,以下描述通过LR来编写Java脚本以及调用jar包的基本步骤. 1.安装配置java环境  LR的java vuser脚本的执行依赖于 ...

  9. loadrunner java / JAVA_HOME / CLASSPATH / PATH

    s Loadrunner 9.5/11 java vuser环境配置问题(已解决) http://blog.csdn.net/achang21/article/details/45540483 Loa ...

随机推荐

  1. Git更新远程仓库代码到本地(转)

    参考链接:https://blog.csdn.net/chailyuan/article/details/53292031 在下载一个较大的github项目以后,当该项目代码更新以后,我们想将更新的内 ...

  2. 给出随机存储器(RAM)和只读存储器(ROM)的差别

    给出随机存储器(RAM)和只读存储器(ROM)的差别

  3. Linux 逻辑卷管理LVM

    LVM概述 Logical Volume Manager,逻辑卷管理 屏蔽了底层磁盘布局,便于动态调整磁盘容量 需要注意:/boot分区用于存放引导文件,不能应用LVM机制 LVM结构 目标:将sdb ...

  4. python,类和对象(一)

    万物皆对象,在python中也存在对象,首先我们需要知道面向对象的三大特征封装.继承.多态. 封装就是将一种或多种杂乱无序的代码进行有序的分类封装. 继承可以理解为孩子会继承父亲所有的东西. 多态可以 ...

  5. JiBX笔记

    注意事项 JiBX:1.2.2 (https://sourceforge.net/projects/jibx/files/jibx/jibx-1.2.2/) JDK:1.6 (http://www.o ...

  6. Netty实现简单WebSocket服务器

    本文参考<Netty权威指南>├── WebSocketServerHandler.java├── WebSocketServer.java└── wsclient.html packag ...

  7. pytroch 0.3 到 0.4版本迁移资料mark

    搜了一堆,还是官方资料给力,一份中文,一份英文,maek一下 https://www.pytorchtutorial.com/pytorch-0-4-0-migration-guide/ https: ...

  8. 使用多线程提高Rest服务性能

    ⒈使用Runnable异步处理Rest服务 /** *使用Runnable异步处理Rest服务 * @return */ @GetMapping("/order") public ...

  9. 统计分析与R软件-chapter2-4

    2.4 因子 统计中的变量有几中重要类别:区间变量.名义变量和有序变量.区间变量取连续的数值,可以进行求和.平均值等运算.名义变量和有序变量取离散值,可以用数值代表,也可以是字符型值,其具体数值没有加 ...

  10. 034_nginx报错总结

    一.nginx: [emerg] "client_header_timeout" directive is not allowed here in /opt/nginx/conf/ ...