官网: https://jmeter.apache.org/
下载地址:https://jmeter.apache.org/download_jmeter.cgi
发送http请求
- 创建线程组 【Test Plan】—【右键】—【添加】—【线程】—【线程组】
- 线程组: 存放所有的测试请求
- setUp线程组: 存放一些测试之前要做的操作的相关请求
- teardown线程组: 测试完成之后进行的操作
- 创建Http请求, 【线程组】—【右键】—【添加】—【取样器】—【Http请求】
添加天气预报请求
协议: http
服务器名称:jisutqybmf.market.alicloudapi.com
请求方法:GET
路径:/weather/query
- 添加Http信息头管理器 【天气预报请求上】—【右键】—【添加】—【配置元件】—【HTTP信息头管理器】
- 设置Http信息头 【添加】—【输入信息头中信息】
名称: Authorization
值:APPCODE 36a6d64593884af1971d218d14a23f9d
- 添加请求参数
回到 天气预报Http请求上,在【参数】列表中—【添加】输入请求参数
名称: city
值:上海
- 添加查看结果树 【线程组】—【右键】—【添加】—【监听器】—【查看结果树】
运行
提示保存
点击【Yes】
选择保存的路径
返回服务器结果中文乱码解决
主要是由于字符集的问题
添加后置处理器
在【天气预报请求上】—【右键】—【添加】—【后置处理器】—【BeanShell 后置处理程序】
编写代码, 设置字符集使用 utf8 编码格式
prev.setDataEncoding("utf-8")
再次运行,可以看到效果
发送Post请求
- 在【线程组】—【右键】—【添加】—【取样器】—【Http请求】
- 在请求中根据接口文档添加对应的数据
协议: http
服务器名称或ip地址:47.100.175.62
端口号:3000
方法:POST
路径:/api/v1/topics
消息体数据:
{
"accesstoken":"9b6f12be-b73e-4a71-b137-3781d550bd86",
"title":"中国你好,哈哈哈哈",
"tab":"ask",
"content":",不渲染。默认为 true,渲染出现的所有 markdown 格式文本"
}
- 添加Http信息头管理器,在管理中声明JSON格式
【新建主题http请求】—【右键】—【添加】—【配置元件】—【HTTP信息头管理器】
输入内容
名称:Content-Type
值:application/json
请求数据中文乱码
上面发送了一个Post请求,请求的数据中含有中文,在查看结果树中看到请求已经成功,
但是在网页上查看的时候发现页面中中文显示 乱码
在请求上设置字符集为utf8
新的结果
设置变量
Test Plan中设置变量
设置变量
在Jmeter中使用变量的时候 方式为 ${token}
也就是使用 ${变量名}
方式来引用。
{
"accesstoken":"${token}",
"title":"中国你好,哈哈哈哈",
"tab":"ask",
"content":"不渲染。默认为 true,渲染出现的所有 markdown 格式文本"
}
上下游传参
使用JsonPathTester
$ 表示整个服务器返回的结果, 在取某个字段数据的时候,需要一层一层 取值即可。
添加JSON提取器
根据接口的业务,我们需要在接口中提取出来 topicid 这个字段对应的值,topicid 是从新建主题上产生,
在 【新建话题请求上】—【右键】—【后置处理器】—【json提取器】
在json提取器中
- Names of created variables: 创建的变量名
- JSON Path expressions: JSON路径提取器
- Match No. : 匹配第几个值, 默认设置为1
添加对应的值:
名称: tid
json路径表达式: $[“topic_id”]
在下一个接口中引用变量
运行
正则表达式提取器
打开 http://wufazhuce.com/ 这个页面, 返回的结果是一个Html 页面
现在要从html页面中提取一段文件。json提取器只能处理 json格式的数据,下面给大家演示如何使用 正则表达式提取器进行数据提取
- 天气预报接口
查看结果数据树中 打开 【RegExp Tester】 正则测试
使用正则表达式的时候,使用 (.+?)
方式来提取对应的值;
引用变量
方式与上面json提取器的方式一样
curl命令(补充,选学)
curl -i -k -X GET 'https://jisutqybmf.market.alicloudapi.com/weather/query?city=%E4%B8%8A%E6%B5%B7' -H 'Authorization:APPCODE 36a6d64593884af1971d218d14a23f9d'
curl 命令使用教程:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html