百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

收下这份实操案例,还怕不会用Jmeter接口测试工具

csdh11 2024-12-20 14:08 4 浏览


JMeter简介

JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是接口功能、自动化、性 能测试的工具。具有高可扩展性、支持HTTP、HTTPS、TCP、等多种协议,还可以自己编写Java脚本对 协议进行扩展。

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


安装和配置

1、本机安装好jdk环境

2、官网下载压缩包,在任意目录下解压

3、修改配置文件,打开Jmeter的bin目录下jmeter.properties,修改:

language=zh_CN

sampleresult.default.encoding=utf-8

??注意:要把配置前面的注释#去掉才能生效


4、进入到Jmeter的bin目录下,双击jmeter.bat启动


Jmeter常用组件

在Jmeter中,可以通过添加不同的组件,来实现不同的功能,常用的组件有:

测试计划

一个最基本的组件,所有的其他组件都要在它的内部运行。

线程组

线程组代表了一组用户,它可以模拟1个或多个用户,可以发起1次或多次请求,也可以连续发送n秒的 请求。

取样器

取样器代表了一个请求,比如HTTP请求,TCP请求等,通过配置服务端接口的ip、端口号和参数等信 息,就可以向服务端发送数据,并拿到响应。

断言

断言就是一个预期结果,断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则, 比如是否包含“success”,状态码是否是200等。如果断言通过,Jmeter就认为HTTP请求成功,否则就标 记为失败。

监听器

监听器就是在Jmeter测试过程中,获取一些运行数据,比如发送了多少次请求、成功了多少次,失败了 多少次。每次请求和响应的具体内容等。


编写一个HTTP接口脚本

打开码同学商城卖家管理后台登录页面,输入用户名密码进行登录,通过fiddler,可以抓包登录接口的信息:

url:/seller/login


请求方式:GET

参数:username=mtx-001&password=e10adc3949ba59abbe56e057f20f883e&captcha=1512&uuid=c9835a40-047b- 11ec-ae8f-41d7ee6b2a89


第一步:创建线程组

在测试计划上右键,添加线程组,保持默认

第二步:创建HTTP请求

在线程组上右键,添加取样器-HTTP取样器,并根据接口的信息,填写协议类型、服务器ip、端口号、 请求方式、路径、请求参数等信息

第三步:创建监听器

在线程组上右键,添加监听器-查看结果树,,点击菜单栏运行按钮,这样就能看到接口运行后的请求和 返回数据


断言

默认情况下,Jmeter会根据接口的响应状态码是否为200来判断接口是否成功,但是很多时候,200只能代表HTTP请求成功了,但是业务上未必成功。因此还需要对接口的返回数据做判断。因此可以使用 Jmeter断言来对返回数据做判断。


断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则,比如是否包含“success” 等,如果断言通过,Jmeter就认为HTTP请求成功,否则就标记为失败,在查看结果树中标记为红色。


常用的断言有Json断言和响应断言

Json断言

针对接口返回是json格式数据的,可以使用json断言,它可以判断json字符串中的某个值是否符合预期。

比如,登录接口成功后,服务器会返回此用户的username和nickname

{

"access_token":

"eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MDU5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.BEnmRfCU2nfkqMwQVajaxMP5uoUtcyoAsTHMkaK_9RoHwaxS0GNUDY- 9I048wx8LX7pmyMqWl70Q4B31dlVTHw",

"uid": 1965,

"refresh_token":

"eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MTE5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.54MSaFcXIuGexBeXY-79oO5_8tAHvmEvtbJ0qKUE9A5VpqKmbECahX4zcb_2XQEox- H0aIZX49P9ncRrH22Jgg",

"face": null,

"role_id": 0,

"founder": 1,

"nickname": "mtx-001",

"username": "mtx-001"

}

添加json断言,判断服务器返回的username是否符合预期。

在HTTP请求上,右键添加json断言

解释:

Assert JSON Path exists:填写Json路径表达式,其中$代表整个json,$.username就是 username对应的值

Additionally assert value:是否对Json路径表达式对应的值进行判断

Expected Value:期望值的内容,填写你的期望值

Json Path的更多详细用法参见:https://github.com/json-path/JsonPath


响应断言

响应断言的应用范围更广一些,只要返回的响应内容是文本内容,无论什么格式,HTML、Json等,响 应断言都可以判断 在HTTP请求上右键,添加响应断言

解释:

测试字段:对哪部分数据进行判断,默认是响应内容

模式匹配规则:判断规则,默认是包含字符串

测试模式:具体判断的内容

相关推荐

15个最好的性能测试工具(软件测试工程师必备)

在软件测试日常工作中,大家接触得比较多的性能测试工具有LoadRunner和Jmeter,这里整理了web应用程序性能和负载压力能力的最广泛使用的性能测试工具的综合列表。...

JMeter关联陌生又熟悉 jmeter re-use connection

JMeter关联是什么JMeter关联,这几个字看着可能会有点陌生,实际上却是工作中经常会做的一件事情,尤其是接口自动化,它指的是把一个接口的响应作为另一个接口的参数,从而...

jmeter汇总报告分析 jmeter总结

背景考验网站的不仅仅是数据的正确性,还有更重要的是灵活快速的交互,高并发的处理能力等。那么我们就需要对网站的整体的处理能力有更进一步的了解,以便来通过诸如集群,分布式,更换硬件等方式来提高网站处理能力...

收下这份实操案例,还怕不会用Jmeter接口测试工具

JMeter简介JMeter,一个100%的纯Java桌面应用...

Apifox--比 Postman 还好用的 API 测试工具

读者提问:有没有一款工具是集API文档、API调试、APIMock、API自动化测试四种功能为一身的?...

Jmeter之Bean shell使用(二) jmeter中beanshell的定义与引用

 上一篇Jmeter之Beanshell使用(一)简单介绍了下Jmeter中的Beanshell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容...

如何服务端调优与JVM调优? 服务端运行环境为jvm

目录一、安装Jmeter二、压测三、服务端调优四、线上问题分析(一)问题分类(二)问题排查...

Jmeter与压测相关概念 jemeter压测

RT(responsetime)什么是RT?RT就是指系统在接收到请求和做出相应这段时间跨度但是值得一提的是RT的值越高,并不真的就能说明我们的系统的吞吐量就很高,比如说,如果存在数据在网络中传...

性能测试:JMeter参数化 jmeter的参数化

jmeter参数化  在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能。这种测试方式在业界称为数据驱动测试,而在实际测试工作中,测试工具中实现不同...

JMeter 集群环境搭建指南 - 实现高效的压力测试

JMeter是一款非常受欢迎的压力测试工具,但是在大规模压力测试时,单机运行已经无法满足需求了。为了提高负载能力,我们需要搭建JMeter集群。下面,我们来看具体的做法。...

2022年十大接口测试工具合集 好用的接口测试工具

接口测试的全称是应用程序编程接口(API)测试,从原理上来说,接口测试是模拟客户端向服务器端发送请求,然后检查能否获得正确的返回信息。接口测试用于测试RESTfulAPI、SOAPWeb服务,这些...

阿里性能专家全方位对比Jmeter和Locust,到底谁更香?

本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试...

性能测试工具JMeter的使用 使用jmeter进行两个接口关联测试

熟练掌握一款性能测试工具,是我们必备的一项技能。他不仅可以帮助我们模拟测试场景(包括并发、复杂的组合场景),还能将测试结果转化成数据或图形,帮助我们更直观地了解系统性能。jmeter简介...

JMeter做性能测试,用jdk17和jdk8,哪个性能更好呢?

现在企业做接口性能测试,大多还是会用JMeter,而JMeter是用java开发的、开源项目,所以,JMeter依赖java运行环境。目前,jdk已经发布了多个新版本,主推的是jdk17。推荐它的一个...

基于JMeter的性能压测平台实现 jmeter压测分析

这篇文章已经是两年前写的,短短两年时间,JMeter开源应用技术的发展已经是翻天覆地,最初由github开源项目zyanycall/stressTestPlatform形成的这款测试工具也开始慢...