官网: https://jmeter.apache.org/

下载地址:https://jmeter.apache.org/download_jmeter.cgi
image.png

发送http请求

  1. 创建线程组 【Test Plan】—【右键】—【添加】—【线程】—【线程组】

image.png

  • 线程组: 存放所有的测试请求
  • setUp线程组: 存放一些测试之前要做的操作的相关请求
  • teardown线程组: 测试完成之后进行的操作
  1. 创建Http请求, 【线程组】—【右键】—【添加】—【取样器】—【Http请求】

image.png
添加天气预报请求
image.png
协议: http
服务器名称:jisutqybmf.market.alicloudapi.com
请求方法:GET
路径:/weather/query

  1. 添加Http信息头管理器 【天气预报请求上】—【右键】—【添加】—【配置元件】—【HTTP信息头管理器】

image.png

  1. 设置Http信息头 【添加】—【输入信息头中信息】

image.png
名称: Authorization
值:APPCODE 36a6d64593884af1971d218d14a23f9d

  1. 添加请求参数

回到 天气预报Http请求上,在【参数】列表中—【添加】输入请求参数
image.png
名称: city
值:上海

  1. 添加查看结果树 【线程组】—【右键】—【添加】—【监听器】—【查看结果树】

image.png
运行
image.png
提示保存
点击【Yes】
选择保存的路径
image.png

返回服务器结果中文乱码解决

image.png
主要是由于字符集的问题

添加后置处理器
在【天气预报请求上】—【右键】—【添加】—【后置处理器】—【BeanShell 后置处理程序】
image.png

编写代码, 设置字符集使用 utf8 编码格式

  1. prev.setDataEncoding("utf-8")

image.png
再次运行,可以看到效果
image.png

发送Post请求

  1. 在【线程组】—【右键】—【添加】—【取样器】—【Http请求】image.png
  2. 在请求中根据接口文档添加对应的数据

image.png
协议: http
服务器名称或ip地址:47.100.175.62
端口号:3000
方法:POST
路径:/api/v1/topics

消息体数据:

{
    "accesstoken":"9b6f12be-b73e-4a71-b137-3781d550bd86",
    "title":"中国你好,哈哈哈哈",
    "tab":"ask",
    "content":",不渲染。默认为 true,渲染出现的所有 markdown 格式文本"
}
  1. 添加Http信息头管理器,在管理中声明JSON格式

【新建主题http请求】—【右键】—【添加】—【配置元件】—【HTTP信息头管理器】
image.png
输入内容
image.png
名称:Content-Type
值:application/json

请求数据中文乱码

上面发送了一个Post请求,请求的数据中含有中文,在查看结果树中看到请求已经成功,
但是在网页上查看的时候发现页面中中文显示 乱码
image.png
在请求上设置字符集为utf8
image.png

新的结果
image.png

设置变量

Test Plan中设置变量

设置变量
image.png

在Jmeter中使用变量的时候 方式为 ${token} 也就是使用 ${变量名} 方式来引用。
image.png

{
    "accesstoken":"${token}",
    "title":"中国你好,哈哈哈哈",
    "tab":"ask",
    "content":"不渲染。默认为 true,渲染出现的所有 markdown 格式文本"
}

上下游传参

image.png

使用JsonPathTester

image.png

$ 表示整个服务器返回的结果, 在取某个字段数据的时候,需要一层一层 取值即可。
image.png

添加JSON提取器

根据接口的业务,我们需要在接口中提取出来 topicid 这个字段对应的值,topicid 是从新建主题上产生,
在 【新建话题请求上】—【右键】—【后置处理器】—【json提取器】
image.png
在json提取器中
image.png

  • Names of created variables: 创建的变量名
  • JSON Path expressions: JSON路径提取器
  • Match No. : 匹配第几个值, 默认设置为1

添加对应的值:
image.png
名称: tid
json路径表达式: $[“topic_id”]

在下一个接口中引用变量

image.png

运行
image.png
image.png

练习
上下游传参练习.jmx

正则表达式提取器

打开 http://wufazhuce.com/ 这个页面, 返回的结果是一个Html 页面
现在要从html页面中提取一段文件。json提取器只能处理 json格式的数据,下面给大家演示如何使用 正则表达式提取器进行数据提取

  1. 天气预报接口

查看结果数据树中 打开 【RegExp Tester】 正则测试
image.png
使用正则表达式的时候,使用 (.+?) 方式来提取对应的值;
image.png

匹配到之后,在请求中添加正则表达式提取器
image.png
image.png

引用变量

方式与上面json提取器的方式一样
image.png

上下游传参练习.jmx

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