JMeter 执行post请求
1、下载JMeter并解压
2、JMeter配置环境变量,并启动JMeter,使JMeter能够正常运行
3、在测试计划下面添加线程组,路径:测试计划——添加——线程——线程组
添加线程组成功过后,线程组里面的参数可以使用默认值,不用进行变更;
线程数:1 ,理解为模拟一个用户
Ramp-Up时间(秒):1,理解为在1秒钟内启动所有的线程数1
循环次数:1,理解为该线程只执行一次,勾选永远则一直执行,直到手动停止线程的运行
调度器:适用于压力测试时设置压力测试的持续时长,保存默认即可
4、在线程组下面添加HTTP请求,路径:线程组——添加——取样器——HTTP请求
在HTTP请求里面填写接口对应的参数
协议:如果请求是HTTP的则默认为空即可,若为HTTPS则填写:https
服务器名称或IP:请求接口所在服务器地址,列如:www.baidu.com 或者 127.0.0.1
端口号:指定了端口号则需要填写,未指定默认为空即可,http默认端口为80,https默认端口为443,一般情况下http请求时,端口可默认为空
方法:接口的请求方法,get、post、head、put等,根据接口文档要求进行填写
路径:接口请求路径,写法:”/servlet/json“ ,注意第一个斜杠不可缺少
内容编码:默认为空即可
自动重定向、跟随重定向、使用KeepAlive、对POST使用multipart/form-data、与浏览器兼容的头:保持默认值即可
参数--名称:填写接口参数的参数名
参数--值:填写接口参数的参数值
参数--编码:默认为空,如果参数值里面包含特殊字符(¥%……_)需要勾选编码
参数--内容类型:保持默认值即可
参数--包含等于:保持默认值即可
消息体数据:消息体数据与参数为互斥关系,只能使用其中一个类型,消息体数据通常使用json格式的数据作为参数。
文件上传:根据接口实际情况考虑是否使用,本示例接口不适用文件上传内容,该内容下的所有值保持为空即可
5、添加察看结果树,用于查看接口请求返回值,路径:线程组——添加——监听器——察看结果树
6、点击执行按钮,对接口进行请求并查看请求结果
在执行请求之前JMeter会要求你先保存JMeter脚本,可以选择保存也可以选择不保存,点击否则直接执行请求
请求结果默认展示text格式的数据,可以通过下拉选择json格式的数据以便于观察
查看请求数据是否满足接口文档的要求,正确的返回接口要求参数
7、增加HTTP请求默认值、用户定义的变量元件,多元化post请求
在实际编写JMeter接口脚本的过程中,会出现多个接口,在调试接口的过程中,会出现大量重复的工作,例如修改参数值,调节参数信息等
如何将这些重复的工作尽量的缩减来提高工作效率,这种情况下我们可以考虑将接口重复的内容提取出来,并添加到HTTP请求默认值、用户定义的变量中,并对这些内容进行引用,达到一处修改数据多处可以同时使用的目的
如上图,请求1、2、3、4 除了参数eno 的参数值不一样外,其他的值均相同,那么我们可以将【服务器名称或IP】移动到配置元件【HTTP请求默认值】里面
8、添加http请求默认值,对请求默认值进行统一管理
添加路径:线程组——添加——配置元件——HTTP请求默认值
元件【HTTP请求默认值】与元件【HTTP请求】之间的执行优先级是:如果HTTP请求里面填写了IP、端口、等参数,则使用HTTP请求里面的参数进行接口请求;如果HTTP请求里面没有这些参数,则使用HTTP请求默认值里面的参数进行接口请求。即【http请求】优先级高于【http请求默认值】的执行
9、添加用户定义的变量,对接口的参数的变量值进行统一管理
添加路径:线程组——添加——配置元件——用户定义的变量
在实际测试的过程中,我们的接口参数可能会进行不停的变动来满足不同的业务场景,那这种情况下如果在每个HTTP请求里面去修改数据,就会使工作变的很繁琐,效率较低。
我们可以通过将所有的参数放到配置元件【用户定义的变量】里面,【HTTP请求】配置元件再去引用【用户定义的变量】元件设置的变量,达到对变量进行统一管理的结果,那么我们就可以通过设置一个地方的变量,来修改整个脚本的数据的目的。
【用户定义的变量】与【HTTP请求】的优先级关系是,优先执行【HTTP请求】里面的参数。
JMeter使用是比较灵活,较好的利用各个元件,让各个元件各司其职,可以提高工作效率,减少重复的工作量。