• lr_java user协议脚本开发


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

          lr11 jdk1.6 32位

          lr12 jdk1.7 32位

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

    看到还是jdk1.8。那是因为安装1.8时自动在环境变量里加入了C:ProgramDataOracleJavajavapath,在环境变量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
    }

  • 相关阅读:
    在IIS7中应用Application Request Routing配置反向代理
    sqlite数据类型(时间 日期 ) timestamp 使用
    Windows环境下搭建Redis集群(Redis-x64-3.2.100)
    Vertx上传 官网Demo Java版
    Vert.x HTTP 服务器与客户端
    vertx-mysql-client/java/
    vertx-jersey
    Vertx和Jersey集成使用
    jersey常用注解解释 JAX-RS常用注解:
    Statement及PreparedStatement执行多个sql
  • 原文地址:https://www.cnblogs.com/nikeke/p/10720240.html
Copyright © 2020-2023  润新知