前提条件: 获取用户的token
https://work.weixin.qq.com/api/doc/90000/90135/91039
必要的值
corpid | ww88fc20d87e4cdfa1 | 企业ID |
---|---|---|
corpsecret | 8kZYaPdkie4nuh3itIwhgchoWIbWr4tIUWpnkD_SZ0I | 应用的凭证密钥 |
企业微信
api 地址: https://work.weixin.qq.com/api/doc/90000/90135/93618
会议室管理: https://work.weixin.qq.com/api/doc/90000/90135/93619
会议室预定管理: https://work.weixin.qq.com/api/doc/90000/90135/93620
- 下载 jmx文件 导入自己的jmeter中。
- token 值使用变量的方式进行传递 (上下游传参),
- 给接口添加必要的断言。
针对添加会议室接口 测试异常场景,使用csv文件配置。
需要添加断言。
可以参考这三天学习内容进行操作。
函数助手的应用
随机值
__RandomString
添加会议室接口,会议室的名称不能重复,使用随机字符串的方法。
{
"name":"${__RandomString(20,qwertyyuiopasdfghjklmnvcxz,)}会议室",
"capacity":10,
"city":"深圳",
"building":"腾讯大厦",
"floor":"18F",
"equipment":[1,2,3],
"coordinate":
{
"latitude":"22.540503",
"longitude":"113.934528"
}
}
动态引用变量进行断言
添加断言
上下游传参
编辑会议室的 id 来自 添加会议室
添加会议室返回的结果是编辑会议室的请求参数。
在添加会议室接口中设置变量
下游接口中引用变量
附件
上面操作对应的文件
会议室管理.jmx
跨线程组传参
当业务比较多的时候,可以创建不同的线程组存放不同的业务请求。
会议室预定管理中的请求需要使用到 会议室管理 线程组中的 变量。
这个场景就是 跨线程组传参。
通过一般的访问变量的方式,拿不到结果。
beanshell 后置处理器
在上一个线程组上的请求上添加 beanshell 后置处理器
设置为属性
// 获取json提取器中设置设置token参数 设置为mytoken
String mytoken = bsh.args[0];
// 将token具体的只设置为属性 属性名为 new_token
props.put("new_token",mytoken);
beanshell 前置处理器
在【测试计划】— 添加—【beanshell 前置处理程序】
前置处理器放在测试计划下面, 每个线程组运行之前都会执行。
// 获取名称为 new_token的属性,对应的值赋值给变量 new_token
String new_token = props.get("new_token");
// 将newtoken的值设置为变量,变量名为为token
vars.put("token",new_token);
附件
时间函数
上面的接口 中需要使用到 时间
使用Jmeter中的函数助手功能,生成的时间默认单位为毫秒。
${__time(/1000,)} 当前时间转换为秒
intsum 相加
${intSum(${time(/1000,)},7200,)} 两个小时之后的时间
{
"meetingroom_id":${mmid},
"start_time":${__time(/1000,)},
"end_time":${__intSum(${__time(/1000,)},7200,)},
"city":"高老庄",
"building":"腾讯大厦",
"floor":"18F"
}