1、准备工作,安装jdk,配置环境变量

lr11 jdk1.6 32位

lr12 jdk1.7 32位

注:若原已安装了jdk1.8,现要安装jdk1.7,若遇到安装好1.7并配置好环境后,在cmd中录入 java -version。

看到还是jdk1.8。那是因为安装1.8时自动在环境变量里加入了C:\ProgramData\Oracle\Java\javapath,在环境变量path里去掉后1.7就生效了;

2、在idea编译器里编写好md5脚本(也可直接让开发人员提供算法文件),运行确认效果后打包成jar包;

以下为新建脚本至打包成jar包过程:

1) 新建项目 ;

2)sdk选择1.7版本的,然后点击下一步;

3)不选择模板,直接点击下一步;

4)项目命名md5

5)点击finish,提示项目文件将被创建

6)新建包

给包命名后,点击ok;

7)在包下创建java class文件

在这些文件下编辑md5和发送请求的方法,也可由开发提供,直接复制到该目录下进行引用;编写调用方法测试效果;

注:导入lib包:

8)打jar包;

9)选择类方法后,点击ok;

10)给导出的jar包命名;

11) build,点击构建jar包

3、loardrunner里的操作:

1)新建java vuser协议脚本

2)在runtime setting里的classpath里添加打好的md5jar包、还有脚本调用到的所有lib里的jar包以及jdk的tools.jar和dt.jar包;

3)在Actions脚本里导入调用的md5和发送请求的方法类,以及要调用到的方法;

4)编写脚本如下:import lrapi.lr;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import md5.HttpClientRequest;
import md5.MD5;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class Actions
{

public int init() throws Throwable {
        return 0;
    }//end of init

public int action() throws Throwable {
        // 定义登录URL地址
        String login_url = "http://192.168.46.129:8080/mobile/api/user/login";
        // 定义请求的参数
        String login_data = "{\"mobile\":\"18807406054\",\"password\":\"123456\"}";
        lr.start_transaction("登录");
        // 调用HttpClientRequest类里面的sendpost方法
        String PostResult = HttpClientRequest.sendPost(login_url, login_data);
        System.out.println("登录返回:"+ PostResult);
        JSONObject jsonobj = new JSONObject(PostResult);
        int status = (int) jsonobj.get("code");
        if (status==0)
        {
            lr.end_transaction("登录", lr.PASS);
            lr.output_message("登录成功");
        }
        else
        {
            lr.end_transaction("登录", lr.FAIL);
            lr.error_message("登录失败");
        }
        System.out.println("code:" +status);
        // 获取token值
        String token = (String) jsonobj.getJSONObject("data").get("token");
        System.out.println("token:" +token);
        
        //重置密码
        String modifypaypwd_url = "http://192.168.46.129:8080/mobile/api/user/resetpaypwd";
        // 调用md5类里面的getmd5code这个方法
        String newPasswod = MD5.GetMD5Code("123456");
        System.out.println("newPasswod:" +newPasswod);
        String modifypaypwd_data = "{\"token\":\""+token+"\",\"password\":\""+newPasswod+"\"}";
        
        lr.start_transaction("重置支付密码");
        String PostMd5Result = HttpClientRequest.sendPost(modifypaypwd_url, modifypaypwd_data);
        System.out.println("重置密码返回:" + PostMd5Result);
        JSONObject jsonobj_resetpasswd = new JSONObject(PostMd5Result);
        int resetpasswd_status = (int) jsonobj_resetpasswd.get("code");
        if (resetpasswd_status==0)
        {
            lr.end_transaction("重置支付密码", lr.PASS);
            lr.output_message("重置支付密码成功");
        }
        else
        {
            lr.end_transaction("重置支付密码", lr.FAIL);
            lr.error_message("重置支付密码失败");
        }
        
        
        String getorderlist_url = "http://192.168.46.129:8080/mobile/api/order/getorders?";
        // 调用md5类里面的getmd5code这个方法
        String code_token="";
        try
        {
            code_token=URLEncoder.encode(token,"utf-8");//对token进行urlencode
        }
        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        String getorderparam = "token="+code_token+"&offset=0";

lr.start_transaction("获取订单列表");
        String getorderlist_result = HttpClientRequest.sendGet(getorderlist_url, getorderparam);
        System.out.println("getorderlist_result:" + getorderlist_result);
        JSONObject jsonobj_getorderlist_result = new JSONObject(getorderlist_result);
        int getorderlist_status = (int) jsonobj_getorderlist_result.get("code");
        if (getorderlist_status==0)
        {
            lr.end_transaction("获取订单列表", lr.PASS);
            lr.output_message("获取订单列表成功");
        }
        else
        {
            lr.end_transaction("获取订单列表", lr.FAIL);
            lr.error_message("获取订单列表成功");
        }
        
        return 0;
    }//end of action

public int end() throws Throwable {
        return 0;
    }//end of end
}

lr_java user协议脚本开发的更多相关文章

  1. [性能测试]:关于MQ协议脚本开发

    消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们. 银行脚本使用MQ通信的较多,下面介绍一个MQ的脚本: M ...

  2. 性能测试学习 第八课--LR12中针对WebServices协议的三种脚本开发模式

    一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...

  3. LR12中针对WebServices协议的三种脚本开发模式

    一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...

  4. Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本

    脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...

  5. Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试

    脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试 by:授客 QQ:1033553122   目的 实现基于http协议的流媒体在线视频播放,服务器性能测试脚本,模拟用户浏览器方式在线播放 ...

  6. 【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter对SOAP协议性能测试脚本开发

    目录: 创建WebService接口模拟服务端 下载SoapUI 新建MathUtil.wsdl文件 创建一个SOAP项目 接口模拟服务端配置以及启动 JMeter对SOAP协议性能测试脚本开发 [阐 ...

  7. 老李分享:loadrunner的java user脚本开发

    老李分享:loadrunner的java user脚本开发 poptest在性能测试loadrunner的课程里,以web协议为主,同时也讲解其他协议的脚本开发,对于一个性能测试工程师需要掌握一个以上 ...

  8. loadrunner之java user脚本开发

    脚本开发环境: loadrunner11.0 jdk1.6.32_x86_32 脚本开发 1.选择JavaVuser协议 2.配置java环境(Vuser--RunTime Settings) 3.开 ...

  9. Loadrunner11中webservice协议脚本总结

    Loadrunner11中webservice协议脚本总结 简介     webservices协议是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接,其中最基 ...

随机推荐

  1. 打开visual studio 2010报错:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application”包

    1  解决: 运行cmd 2  输入:regsvr32 %windir%\system32\jscript.dll

  2. leetCode 字符串相关问题

    125. 验证回文串 /* * 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. * 输入: "A man, a plan, a canal: Panama& ...

  3. 关于PHP5.6连接SqlServer

    在做一个PHP报名系统的时候需要使用mssql来和winform结合起来使用, 但是发现我的php环境没有sqlsrv模块,于是乎,我就开始百度了 找到了微软官方下载地址,对照php版本,下载对应的模 ...

  4. P1659 [国家集训队]拉拉队排练

    思路 求出cnt和len之后,直接乘起来即可 代码 #include <cstdio> #include <algorithm> #include <cstring> ...

  5. Request method 'PUT'/ 'POST' not supported

    起因 在项目中遇到需要进行crud操作的功能,用的是Springboot+MybatisPlus+MySQL+AVue,在通过postman测试接口正确性时遇到此错误. 排查过程 因为项目运行是没问题 ...

  6. Linear Regression with machine learning methods

    Ha, it's English time, let's spend a few minutes to learn a simple machine learning example in a sim ...

  7. vue实现实时监听文本框内容的变化(最后一种为原生js)

    一.用watch方法监听这个变量. <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  8. JVM垃圾回收(三)- GC算法:基础

    GC算法:基础 在介绍GC算法在实际场景中的实现之前,我们先定义一些必要的术语,以及GC算法的基本准则.具体的细节会因收集器的不同而稍有区别,但是基本上来说,所有的收集器会关注以下两个方面: 找出所有 ...

  9. CF数据结构练习(二)

    1. 833D Red-Black Cobweb 大意: 给定树, 边为黑色或白色, 求所有黑白边比例在$[\frac{1}{2},2]$内的路径边权乘积的乘积. 考虑点分治, 记黑边数为$a$, 白 ...

  10. Cookie、Session和自定义分页

    一.cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响, ...