【接口测试】接口测试Jmeter怎么测?

2020-10-22 19:28发布

4条回答
霸气的名字 - 喜欢晴天
2楼 · 2020-10-22 19:31
  1. 打开jmeter图形界面。

    jmeter-如何测试接口

    jmeter-如何测试接口

  2. 右键添加一个线程组。

    取名:API接口测试

    jmeter-如何测试接口

    jmeter-如何测试接口

  3. 添加一个事务控制器。可以简单的先理解为一个接口组。

    例如:文件接口,用户接口,登录接口等。

    jmeter-如何测试接口

    jmeter-如何测试接口

  4. 添加一个http请求,用httpclient发送请求。

    jmeter-如何测试接口

    jmeter-如何测试接口

  5. 这时候要看自己的api接口文档。接口文档中会写明使用的是什么方法:GET POST PUT  DELETE等

    这里我用的是POST方法。

    协议是http,域名写自己的服务器地址,端口写服务器的端口。

    路径,就是接口文档中除去domain的部分。

    我的接口用到了两个参数是username和password

    点击添加,添加两个参数,并给予赋值。

    jmeter-如何测试接口

  6. 点击运行,可以查看到运行结果/

     我已经添加了结果树来查看结果。

    jmeter-如何测试接口

  7. 可以看到接口访问成功,返回200.

    注意这里产生了多个接口,是因为我设置了跟随重定向,因为前面的请求是返回302要跳转的,所有请求返回成功后,才算这个接口测试成功。

    但是200并不能成为我们判断接口是否访问成功的依据。因为有的请求返回200,但是响应信息里面会有响应的错误信息,因此需要添加断言。后面的经验会提到如何添加断言。

    jmeter-如何测试接口

    jmeter-如何测试接口


我想吃肉
3楼 · 2020-10-23 09:23

要真正的做好接口测试,并且弄懂如何测试接口,需要从如下几个方面去分析问题,再找准学习的的方向,才能让自己在工作中,运筹帷幄。


no.1

工具的选择


◆ Jmeter


◆ soapui


◆ postman


◆ fiddler


◆ 编码


◆ 其他工具


那么大家可以看到我们供新手选择的工具和方案有多种,既然我们的标题是Jmeter,那我们就重点强调怎么使用Jmeter来测试接口。


no.2

接口的分类


◆ http:Jmeter soapui postman


◆ socket:Jmeter


◆ webservice:Jmeter soapui


在进行接口测试之前,一定要搞定你的接口是什么协议的,好根据这个去选择工具或者是给工具安装对应的插件!


比如说如果是socket协议,要用Jmeter来测试,那么就要提前安装好插件,才能顺利完成测试。


如果不知道协议是什么,可以询问开发人员!

no.3

需掌握哪些知识


对于这个问题我们也要进行一个分类说明,好帮助大家去进行梳理。


(此处举例,我们用HTTP类型的接口来进行说明)


A:简单的接口测试(不涉及任何cookie session 或者是关联):


必备掌握的知识有:


◆ 如何添加一个线程组


◆ 如何添加http sampler


◆ http sampler的界面功能学习和使用


◆ 监听器里面的察看结果树元件使用和学习


可以说这个是做接口测试的基础必备,我们称之为A部分。


B:涉及cookie/session/参数化/关联的接口测试


必备掌握的知识有A部分,以及如下几点:


◆ http cookie管理器


◆ http 信息头管理器


◆ 参数化:csv data set config元件使用


◆ 关联:正则表达式提取器 、json表达式提取器


可以说上述几点是做进阶接口测试的必备,我们称之为B部分。


C:涉及到java代码的接口测试(比如说需要用到加密算法或者存储测试结果到Excel中去)


必备掌握的知识有A+B部分,以及如下几点:


◆ beanshell sampler元件的学习使用


◆ 基本的java编码能力


基本上掌握了A/B/C三部分,那么就可以完美的做好接口测试了。


这里讲的是需要掌握哪些知识点或者是元件的使用,并没有讲解怎么去测试,大家也可以看到根据接口的协议不同,接口的难度不同,我们需要掌握的知识也不一样,所以要做好接口测试还需要各个击破。


魏魏姐
4楼 · 2020-10-23 13:47

目前设计的自动化接口测试案例有两个运行场景:

  1.

测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。【开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。】

  2.

回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。


征戰撩四汸
5楼 · 2022-03-28 15:48

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、增加监听器

添加方法:线程组 ->右键添加 ->监听器 ->察看结果树。一般还会一并添加图形结果、聚合报告。

元件描述:树状形式显示接口的访问结果,包括请求结果、请求内容、服务器的响应内容。


相关问题推荐

  • Postman是什么软件?2020-08-12 09:55
    回答 4

    Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。

  • 回答 12

    Postman的官网上这么介绍它:Modern software is built on APIs,Postman helps you develop APIs faster,看得出来,它是一个专门测试 API 的工具,如果你正在进行 API 相关的开发,那这篇文章就是你的福利!Postman 提供功能强大的 Web API 和 HTTP 请求的...

  • 回答 14

    接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。...

  • 回答 2

    1.可以发现很多在页面上操作发现不了的bug(接口的)2.可以检查系统(接口)的异常处理能力3.可以检查系统(接口)的安全性、稳定性4.前端随便变,接口测好了,后端不用变5.可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,...

  • 回答 11
    已采纳

    接口测试的工具可以进行接口测试的工具很多,这里简单介绍几个: 1、loadrunner:一款商业性能测试工具,用来做接口测试,很好很强大 2、jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request...

  • 回答 5

    接口是指外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。  常见web接口:一类是http协议的接口,另一类是web service接口(如soup、rmi、rpc协议)。...

  • 回答 10

    接口测试的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,本人首推的测试工具是postman和jmeter,接下来就简单介绍下如何使用这两款工具进行接口测试,其他工具本次暂不介绍。1)、Postman是谷歌的一款接口测试插件,它使用简单,支持...

  • 回答 7
    已采纳

    Fiddler显示菜单工具栏的操作教程      秃秃的fiddler      view-->show tool bar      然后菜单栏就出现了      3我感觉在fiddler,有一个非常厉害实用的功能就是      auto responder ,自动回发。      尤其是在调试...

  • 回答 2
    已采纳

    看看这个思维导图能帮助到你吗

  • 回答 4

    早期的开关量控制装置就是继电器逻辑控制,后来有电子技术了,开关量控制装置开始采用电子技术模仿继电逻辑,比较典型的就是比较典型的就是可编程序控制器(PLC),此外还有各种开关电路组成的控制器、以单片机为核心器件的控制器等,很多,其基本原理都是源...

  • 回答 5

    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。...

  • 回答 8

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更...

  • 回答 3

    一、Jmeter关联的方式:Jmeter中关联可以在需要获取数据的请求上 右键–>后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联为什么要进行关联:...

  • 回答 5

    首先第一步要导入mysql驱动包一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Password:密码二、添加JDBC Reques三、在http请求中加入变量username_id_N...

  • 回答 3

    再今天重新学习,从数据库中取数据,并作为变量传到下一个请求中。首先第一步要导入mysql驱动包  一、添加JDBC Connection Configuration设置链接Database URL: jdbc:mysql:// 数据库地址 /库名JDBC Driver class:com.mysql.jdbc.DriverUsername:账号Pass...

  • 回答 5

    一、CSV 参数化1、我们做性能测试需要并发多个用户,为了真实模拟用户行为,我们需要模拟多个不同的用户登录,这是我们就需要进行参数化。这里我们选择比较常用的参数化方法-CSV Data Set Config首先打开CSV Data Set Config2.新建cvs文件放在和脚本同一个目...

没有解决我的问题,去提问