loadrunner测试springboot的api接口

来源:互联网 发布:java excel导入导出 编辑:程序博客网 时间:2024/05/19 17:50

在使用loadrunner测试springboot的api接口的时候,不会像是测试页面的时候那样可以进行录制,测试API只能写脚本,这里写下一些调用API的脚本,方便以后查询使用,下面的请求都是JSON格式的

  1. 使用POST上传文件,这种方式上传文件,就像是使用Form请求上传文件,后台使用request对象从parameter中获取文件一样
//上传文件Action(){    lr_start_transaction("4_upload");    //设置自定义表头    web_add_header("flag","sys01");    web_add_header("timestamp","1504056353553");    web_add_header("token","329415275d5caa3edcbddccc003d9562ae9868cb73ef66029c4c35c178ea56423da6f8daec46b38f");    //调用loadrunner内部函数上传文件    web_submit_data("upload",                    "Action=http://localhost:8080/ecmtkRest/ecm/upload",                    "Method=POST",                    "EncType=multipart/form-data",                    "TargetFrame=",                    "RecContentType=application/json",                    "Mode=HTML",                    ITEMDATA,                    "Name=flag","Value=sys03", ENDITEM,                    "Name=timestamp", "Value={timeStamp}", ENDITEM,                    "Name=token", "Value={token}", ENDITEM,                       "Name=file", "Value=K:\\image\\669.jpe", "file=yes", ENDITEM,*                    LAST        );    lr_end_transaction("4_upload", LR_AUTO);    return 0;}
  1. 将文件转换为二进制字符串,然后保存在parameter中上传到服务器
上传文件——二进制Action(){    lr_start_transaction("4_upload");    web_add_header("flag","{flag}");    web_add_header("timestamp","{timeStamp}");    web_add_header("token","{token}"); /*    web_submit_data("upload",                    "Action=http://localhost:8080/ecmtkRest/ecm/upload",                    "Method=POST",                    "RecContentType=application/json",                    "Mode=HTTP",                    //设置HTTP请求的body部分                    "Body=data={data}&file={file}",                    LAST        );}
  1. 这种方式是当api的请求参数设置为@RequestBody的时候使用的,直接将文件的二进制字符串和需要上传的参数序列化为JSON字符串,直接放在body中
    下面是这种球的HTTP内容
    这里写图片描述
Action(){    //注意这里使用的web_custom_request函数    web_custom_request("upload",                       "URL=http://localhost:8080/ecmtkRest/ecm/upload",                       "Method=POST",                       "Resource=0",                       "Referer=",                       "RecContentType=application/json",                       "EncType=application/json",                       "Mode=HTTP",                       "Body={data}",                       LAST);    lr_end_transaction("4_upload", LR_AUTO);    return 0;}//java代码@RequestMapping(value="/upload", method=RequestMethod.POST)public String uploadFile(@RequestBody JSONObject data){     return service.uploadFile(data);}

4.Get请求

    lr_start_transaction("5_4_company_year_month_10000");    web_add_header("flag","{flag}");    web_add_header("timestamp","{timestamp}");    web_add_header("token","{token}");    web_add_header("pageIndex","1");    web_add_header("pageSize","10000");    //获取调用API之后的返回值    web_reg_save_param("code",                       "LB=\"code\":\"",                       "RB=\"",                       LAST);    web_custom_request("5_company_year_month_10000",        "Method=GET",        "URL={url}/ecmtkRest/scaninfo/{company}/{year}/{month}",          "RecContentType=application/json",        "EncType=application/json",        "Mode=HTTP");    //对返回值进行判断    if(strstr(lr_eval_string("{code}"),"0") != NULL)    {        lr_output_message("请求=%s","成功");        lr_end_transaction("5_1_company_year_month_10000", LR_PASS);    }    else    {        lr_output_message("请求=%s","失败");        lr_end_transaction("5_1_company_year_month_10000", LR_FAIL);    }
原创粉丝点击