当前位置: 首页 > wzjs >正文

三个律师做网站合适吗如何做游戏推广

三个律师做网站合适吗,如何做游戏推广,骨科免费咨询,那个网站可以做空比特币JMeter-Websocket接口自动化 结构图 1.准备2.实现思路2.1 通过HTTP请求获取token2.2 设置循环控制、断言变量2.3 建立WebSocket连接2.4 设置While循环控制读取CSV文件数据2.4.1 csv文件设置,一般这样设置参数即可变量名称:message,expected_steps 2.5 设…

JMeter-Websocket接口自动化

        • 结构图
    • 1.准备
    • 2.实现思路
      • 2.1 通过HTTP请求获取token
      • 2.2 设置循环控制、断言变量
      • 2.3 建立WebSocket连接
      • 2.4 设置While循环控制读取CSV文件数据
        • 2.4.1 csv文件设置,一般这样设置参数即可
          • 变量名称:message,expected_steps
      • 2.5 设置websocket请求体数据
      • 2.6 设置循环来保证接收到需要的响应(排除ping响应的影响)
        • JSR223后置处理脚本(从正确响应中拆解出需要的数据):
        • JSR223断言(从正确响应中拆解出需要的数据):
      • 2.7 进行安全处理,关闭websocket连接和确保循环终止(保险)
    • 3.csv文件格式
    • 4.结果查看和输出

结构图

在这里插入图片描述

1.准备

提前安装好JMeter Plugins Manager,后续用的到部分组件需要通过插件管理器安装,比如JSR断言、WebSocket Open Connection等组件

2.实现思路

2.1 通过HTTP请求获取token

token有过期时间,每次手动设置较为麻烦,故通过组件每次运行获取新的token

在这里插入图片描述

2.2 设置循环控制、断言变量

也有每次循环重置变量的作用,避免变量结果复用

在这里插入图片描述

2.3 建立WebSocket连接

WebSocket连接实在HTTP请求的基础上建立的,也就是在HTTP请求中高速对方,我要和你建立websocket连接,所以必要的HTTP请求头参数要带上

在这里插入图片描述
在这里插入图片描述

2.4 设置While循环控制读取CSV文件数据

2.4.1 csv文件设置,一般这样设置参数即可

在这里插入图片描述

变量名称:message,expected_steps

对应vars中的变量,变量值是根据分隔带JMeter自动处理的,变量名称 数量和分隔后的变量值 数量不对应也没影响,两者缺少的值会忽略或者设置为空值

2.5 设置websocket请求体数据

在这里插入图片描述

2.6 设置循环来保证接收到需要的响应(排除ping响应的影响)

在这里插入图片描述

JSR223后置处理脚本(从正确响应中拆解出需要的数据):

脚本是类似C语言的执行模式,方法在前,调用在后

import org.json.JSONObject;
import org.json.JSONArray;// 解析read的响应数据为json格式
public JSONObject parseResponse(String response) {try {JSONObject jsonResponse = new JSONObject(response);return jsonResponse;} catch (Exception e) {log.info("解析read结果失败: " + e.getMessage());return null;}
}// 判断action是否为chat
public Boolean processAction(JSONObject jsonResponse) {try{if (jsonResponse.has("action") && jsonResponse.get("action").toString().equals("chat")) {return true;} else {return false;}}catch (Exception e) {System.err.println("processAction发生异常: " + e.getMessage());return false;}	
}// 获取read结果的steps
public List<String> getStepsList(JSONObject jsonResponse){// 解析实际步骤List<String> actualSteps = new ArrayList<>();try{JSONArray plan = jsonResponse.getJSONObject("xxxx").getJSONObject("data");for (int i=0; i<plan.length(); i++) {JSONArray steps = plan.getJSONObject(i).getJSONArray("steps");for (int j=0; j<steps.length(); j++) {actualSteps.add(steps.getJSONObject(j).getString("xxxx"));}}}catch (Exception e) {log.info("获取steps失败: " + e.getMessage());}return actualSteps;
}// 获取csv文件中的预期步骤
public List<String> getExpectedStepsList(){return Arrays.asList(vars.get("expected_steps").split(";"));
}// 比较预期步骤和实际步骤是否符合
public Boolean getComparisonResult(List<String> actualSteps,List<String> expectedSteps){//比较方法return actualSteps.equals(expectedSteps);
}// 获取原始响应
String response = prev.getResponseDataAsString();// read的响应数据转为json格式
JSONObject jsonResponse = parseResponse(response);// 仅处理action:chat的响应
if (processAction(jsonResponse)) {// 解析实际步骤List<String> actualSteps = getStepsList(jsonResponse);// 获取预期步骤List<String> expectedSteps = getExpectedStepsList();// 对比数据Boolean temp = getComparisonResult(actualSteps,expectedSteps);// 实际与预期不符if(!temp){// 存储实际、预期数据vars.putObject("actualSteps", actualSteps);vars.putObject("expectedSteps", expectedSteps);// 标记需要断言vars.put("isAsser","true");}vars.put("isValidResponse", "true"); // 标记有效响应(停止读取流数据,进入下个案例循环)
}
JSR223断言(从正确响应中拆解出需要的数据):
// 断言
if ("true".equals(vars.get("isAsser"))) {// 获取测试数据List<String> expectedSteps = vars.getObject("expectedSteps");List<String> actualSteps = vars.getObject("actualSteps");String msg = vars.get("message");String actualStepsString = actualSteps.toString();String expectedStepsString = expectedSteps.toString();AssertionResult.setFailure(true); // 标记断言失败AssertionResult.setFailureMessage("案例 " + msg + " 预期不符\n" + "\t实际步骤:"+ actualStepsString + "\n" + "\t预期步骤:" + expectedStepsString);// 添加调试信息log.info("当前案例: {},与预期不符合", vars.get("message"));log.info("实际步骤列表: {}", actualSteps.toString());log.info("预期步骤列表: {}", expectedSteps.toString());
}

2.7 进行安全处理,关闭websocket连接和确保循环终止(保险)

在这里插入图片描述

3.csv文件格式

在这里插入图片描述

4.结果查看和输出

在这里插入图片描述

http://www.dtcms.com/wzjs/218168.html

相关文章:

  • 教育加盟网站建设开一个免费网站
  • 网站模板漏洞石景山区百科seo
  • 婚庆行业网站建设百度推广登录平台
  • 网页设计一级页面重庆seo整站优化系统
  • 提供购物网站建设一键seo提交收录
  • 武汉网站建设排行百度网页推广
  • 国外网站建设哪个好用?
  • 电子商务网站设计物流方案美食软文300字
  • 网站qq代码爱站网长尾关键词挖掘工具福利片
  • 网站建设公司华网天下买赠两年建设公司顾问
  • cc彩球网站总代理怎么做学网络营销好就业吗
  • 法院司法公开网站建设情况网络推广运营途径
  • 建设网站首页免费网站的软件
  • 现在建设网站都用什么软件2021最近最火的关键词
  • 网站建设滨江口碑营销的经典案例
  • 如何开发电商网站uc浏览器网页版入口
  • 长沙网站推广智投未来seo优化培训班
  • 厦门网站建设费用中国搜索网站排名
  • 做网站一个月能赚多少钱百度搜索引擎推广
  • 用二级域名做网站对seo网站seo方法
  • 搭建一个网站要多少今日新闻头条新闻
  • 手机app可以做网站吗网站seo 优化
  • 网站界面ui设计考试答案百度指数热度榜
  • 网站建设 蜂图网络十大搜索引擎地址
  • wordpress访问次数seo如何优化的
  • 火车头 wordpress4.9搜索引擎优化的要点
  • 网站的目录怎样做的安康seo
  • 新华路网站建设百度免费收录提交入口
  • 长春市大学生网站建设百度电脑版网址
  • 团购网站建设怎么样媒介平台