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. php项目命名规范

    命名规范 ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 目录和文件 目录使用小写+下划线: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...

  2. Apache Maven 3.6.1配置安装

    Apache Maven 3.6.1配置安装 一.下载 maven下载地址:http://maven.apache.org/download.cgi 二.安装 1,解压即可用 2,环境变量配置 MAV ...

  3. centos6添加mysql服务自启动

    环境: os: centos 6 db:mysql 5.6.40 1.修改/etc/init.d/mysqld文件,默认文件以及存在,该文件内容如下: #!/bin/sh # Copyright Ab ...

  4. Tomcat类加载

    一.为什么会有类加载 1.在类加载阶段,虚拟机需要完成以下3件事情 1)通过一个全限类定名来获取此类的二进制字节流 2) 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3)在内存中生成 ...

  5. (转)Extracting knowledge from knowledge graphs using Facebook Pytorch BigGraph.

    Extracting knowledge from knowledge graphs using Facebook Pytorch BigGraph 2019-04-27 09:33:58 This ...

  6. Vue-admin工作整理(五):守卫导航

    一.作用: 它可以帮我们在路由发生跳转,到导航结束的时间内,做一些相应的逻辑处理,分为:全局守卫,和专项守卫 1.全局收尾: (a).前置守卫:router.beforeEach(to,from,ne ...

  7. Pandas 基础(14) - DatetimeIndex and Resample

    这一小节要介绍两个内容, 一个是 DatetimeIndex 日期索引, 另一个是 Resample, 这是一个函数, 可以通过参数的设置, 来调整数据的查询条件, 从而得到不同的结果. 首先看下关于 ...

  8. SSH应用实战——安全防护(fail2ban)

    ssh 安全配置 端口 ssh随机端口范围在 27000-30000,可以手动修改也要改在这个范围内,建议定时修改端口. 密码 登陆密码应包含大小写.数字.特殊字符等 10 位以上,建议定期修改密码. ...

  9. Python3环境搭建

    Python3环境搭建   Windows系统下安装Python3 Python3 下载 Python3 最新源码,二进制文档,新闻资讯等可以在 Python 的官网查看到: Python 官网:ht ...

  10. 封装json输出

    /** * 输出json * @param $msg * @param int $errno */ protected function printOutError($msg,$errno = 100 ...