Jmeter接口测试教程以及接口测试流程详解,

内容详情

一、Jmeter简介

Apache JMeter是100%纯JseoA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)它可以用来测试静态和动态ZY的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。

JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能同时,JMeter可以帮助你对你的应用程序进行回归测试通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。

为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.二、JMeter安装配置教程1、安装JDK和JRE2、点击进入Apache JMeter 官网下载安装包

点击下载Binaries中的apache-jmeter-5.4.1.zip;如果下载Source里面的apache-jmeter-5.4.1_src.zip会报下面的错误:Error: Unable to access jarfile ApacheJMeter.jar errorlevel=1

3、解压apache-jmeter-5.4.1.zip文件至D:\software目录下;4、我的电脑----》属性----》高级----》环境变量----》在系统变量中----》点击新建JMETER_HOME,

lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;然后确定

6、点击apache-jmeter-5.4.1中bin目录下面的jmeter.bat文件即可打开Jmeter了(Linux运行Jmeter.sh)注意:打开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭命令窗口。

三、设置Jmeter语言为中文环境1、临时设置Jmeter菜单栏选择OptionsàChoose LanguageàChinese (Simplified)这种方法,重启软件后又变为英文环境了2、永久设置。

进入apache-jmeter-5.2.1\bin目录,找到“jmeter.properties”文件,在文件的第37行后添加“language=zh_CN”,保存之后再打开jmeter就永久变为中文环境了。

四、Jmeter主要元件1、测试计划:测试计划理解为各种测试脚本,测试元件的容器2、线程组:要模拟的用户数,用户执行相互独立,要模拟多少就设置多少3、配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。

4、前置处理器:前置处理器一般处理一些需要参数加密后再传入的请求,如把变量通过MD5的方式加密后,作为参数传入,传入方式为:${__digest(MD5,123456,)}5、后置处理器:负责在请求之后工作,常用获取返回的值。

6、断言:最常用的三种断言方式:响应断言、JSON断言、XPath断言7、定时器:负责定义请求之间的延迟间隔8、取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。

9、逻辑控制器:可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列10、CSV 数据文件设置:读取文件中存在的变量11、定时器:在其作用范围内的每一个sampler有效。

12、SEO器:在其作用范围内对每一个sampler元件的信息收集并呈现五、Jmeter元件的作用域和执行顺序元件作用域及执行顺序:1、配置元件(config elements)元件会影响其作用范围内的所有元件。

2、前置处理程序(Per-processors)元件在其作用范围内的每一个sampler元件之前执行3、定时器(timers )元件对其作用范围内的每一个sampler有效4、后置处理程序(Post-processors)。

元件在其作用范围内的每一个sampler元件之后执行5、断言(Assertions)元件对其作用范围内的每一个sampler元件执行后的结果执行校验6、SEO器(Listeners)元件收集其作用范围的每一个sampler元件的信息并呈现。

六、Jmeter进行接口测试流程1、测试计划 在这里测试计划我们可以把它理解成新建的空白项目,在这个空白项目下面可以添加一系列的接口2、线程组右键点击Test Plan->添加->线程(用户)->线程组。

2.1 线程数:即虚拟用户数,设置多少个线程就是设置多少用户数;2.2 ramp-up时间(秒):设置虚拟用户数全部启动时长如果线程数为20,准备时长为10秒 2.3 循环次数:每个线程发送请求的个数。

如果线程数为20,循环次数为10,那么每个线程发送10次请求总请求数为20*10=200如果勾选了“永远”, 那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束3、HTTP Cookie管理器

右键线程组->添加->配置元件->HTTP Cookie管理器HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。

(备注:cookie是一种技术,能够把你在访问网站时的产生的一些行为信息给读取保存下来)4、HTTP请求默认值右键线程组->添加->配置元件->HTTP请求默认值HTTP请求默认值是为了方便填写后续内容而设置。

主要填写[服务器名称或IP]和[端口号],后续的HTTP请求中就不用每次都填写IP地址和端口号了5、HTTP请求右键线程组->添加->Sampler->HTTP请求HTTP请求包括接口请求方法、请求路径和请求参数等。

6、响应断言添加方法:右键HTTP请求->添加->取样器->响应断言元件描述:检查接口是否访问成功如果检查失败的话会提示找不到断言的内容,没提示的话就代表成功了七、Jmeter进行接口测试流程步骤详解1、测试计划

打开Jmeter,在菜单左侧出现 “测试计划”。在这里测试计划我们可以把它理解成新建的空白项目,在这个空白项目下面可以添加一系列的接口。

2、线程组添加方法:右键点击Test Plan->添加->线程(用户)->线程组。元件描述:一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

(1)线程数:即虚拟用户数设置多少个线程数也就是设置多少虚拟用户数(2)Ramp-Up时间(秒):设置虚拟用户数全部启动的时长如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程也就是平均每秒启动2个线程。

(3)循环次数:每个线程发送请求的个数如果线程数为20,循环次数为10,那么每个线程发送10次请求总请求数为20*10=200如果勾选了“永远”, 那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。

3、HTTP Cookie管理器添加方法:右键线程组->添加->配置元件->HTTP Cookie管理器元件描述:HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。

4、HTTP请求默认值添加方法:右键线程组->添加->配置元件->HTTP请求默认值元件描述:HTTP请求默认值是为了方便填写后续内容而设置主要填写[服务器名称或IP]和[端口号],后续的HTTP请求中就不用每次都填写IP地址和端口号了。

5、HTTP请求添加方法:右键线程组->添加->Sampler->HTTP请求。元件描述:HTTP请求包括接口请求方法、请求路径和请求参数等。

HTTP请求详解(1)名称:本属性用于标识一个取样器,建议使用一个有意义的名称(2)注释:对于测试没有任何作用,仅用户记录用户可读的注释信息(3)服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。

(4)端口号:目标服务器的端口号,默认值为80 (5)协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http (6)方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。

(7)路径:目标URL路径(不包括服务器地址和端口)(8)内容编码:内容的编码方式,默认值为iso8859(9)自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

(10)使用keep Alive :保持jmeter 和目标服务器之间的活跃状态,默认选中(11)对Post使用multipart/from-data:当发送POST 请求时,使用multipart/from-data方法发送,默认不选中。

(12)同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。

6、响应断言添加方法:右键HTTP请求->添加->取样器->HTTP请求。元件描述:检查接口是否访问成功。如果检查失败的话会提示找不到断言的内容,没提示的话就代表成功了。

Apply to指断言作用范围,通常发出一个请求只触发一个请求,所以勾选“main sample only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了。

(1)Main sample and sub-samples:作用于主请求和子请求(2)Main sample only:仅仅只作用于主请求(3)Sub-samples only:仅仅只作用于子请求(4)Jmeter Variable:作用于jmeter变量(输入框内输入jmeter变量名称)

测试字段响应文本(匹配返回的json数据)、响应代码(匹配返回码:如200, 404,500等)、响应信息(匹配响应信息如“OK”字样)、响应头(匹配响应头)、请求头(匹配请求头)、URL样本(匹配请求的url链接,如果有重定向则包含请求url 和 重定向url)、[文档(文本)](匹配响应数据的文本形式)、忽略状态(一个请求有多个响应断言,第一个响应断言选中此项,当第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。

如果下一个断言成功则还是判定事务是成功的)、请求数据(匹配请求数据)模式匹配规则包括:响应内容包含需要匹配的内容即代表响应成功,支持正则表达式匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。

字符串:响应内容包含需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式相等:响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式否:相当于取反,如果结果为true,勾上否就是false

或者:如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)测试模式其实就是断言的数据点击“添加”按钮,输入要断言的数据。

7、增加SEO器添加方法:线程组 ->右键添加 ->SEO器 ->察看结果树。一般还会一并添加图形结果、聚合报告。元件描述:树状形式显示接口的访问结果,包括请求结果、请求内容、服务器的响应内容。

真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,如果下面这些资料你用得到的话可以直接拿走:

在我的QQ技术交流群里整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号 798478386 ( 备注555 ) 觉得文章写的不错的话大佬可以给三连喔~。

本站内容部分来源于网络,仅供学习交流分享,本站不承担任何由于内容的使用所引起的争议及损失。如有侵权,可联系管理员删除处理。本文链接:http://www.wyce.cn/index.php?m=home&c=View&a=index&aid=6338

二维码

联系管理员

在线咨询:点击这里给我发消息

邮箱:209087445@qq.com