jmeter接口测试

1 接口测试基础

1.1 什么是接口

interface(接口)泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。分为硬件接口,软件接口;

1.2 什么是接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。

界面上某个业务功能实现可以看做由多个接口按照某种逻辑组合实现的。

因此可以将接口测试分为两类:

1)单接口测试

2)接口组合测试(场景测试)

测试内部接口或外部接口(人、硬件、软件:os与第三方软件)

接口测试方法 = 黑盒测试 + 白盒测试 (灰盒测试)

1.3 接口测试意义

接口其实就是前端页面或APP等调用与后端做交互用的,但是功能测试都测了,为什么还要测接口呢?

以往功能测试大多数只是验证了前端对异常的处理,如果前端都对异常处理后不通过接口无法验证后端是否处理异常,假设有人绕过前端校验直接向后端发送各种请求,引起异常的情况我们是测不到的。

(1)能够提早发现 bug,符合质量控制前移的理念。

(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。

(3)接口测试对系统接口进行全面检测能够发现更底层的问题。

(4)缩短产品研发周期;接口测试的介入可以更早地发现并解决bug,使得留到功能测试阶段被修复的bug减少,从而缩短整个项目的上线时间。

(5)检查系统的安全性、稳定性

1.4 接口测试必备技能

1.掌握网络基础知识与重要的网络协议,比如TCP/UDP协议、HTTP/HTTPS协议,了解RPC,web service及Rest

2.掌握web开发的基础知识,理解session 、cookie、token

3.掌握常用的接口测试工具如curl命令,postman、jmeter、LR、soapUI等

4.掌握基本的协议分析工具如chrome

devtools,fiddler,Charles,wireshark,tcpdumps等

5.掌握一门编程语言python或java

6.了解Nginx、apache、Tomcat等服务器中间件

7.掌握关系型数据库基本查询命令,以及一些nosql(如Redis)操作,用于检查响应结果

8.掌握基本的linux日志查询和筛选命令

2 接口测试流程

2.1 接口测试流程

1,确定待测接口的范围;(总共要测多少接口、如何交互;待测接口统计渠道:接口文档、代码分析、线上log、客户端抓包)

2,接口分析

3,接口用例设计

4,接口测试框架选择

5,测试用例编写与维护

6,持续集成

2.2 接口文档

接口文档包含如下内容:

1,接口名称

满足公司命名规范。

比如:biz,price,sellprice,get

2,接口功能描述

比如:批量查询价格

3,接口请求方式

例如:HTTP POST

4,接口地址

URL

5,输入参数

包括参数名称 参数类型 是否必填 参数描述

比如:sku long Y 商品编号 ,多个商品以逗号分隔,最多不超过100个

6,请求示例

7,返回结果

8,错误代码

9,响应示例

2.3 接口分析

2.4 接口测试用例设计

case参考点:输入参数测试、功能测试、逻辑测试、异常情况。

设计思路:

a)优先级-针对所有接口

外部接口-->系统内部核心接口-->系统内部非核心接口

b)优先级-针对单接口

正向用例-->逆向用例(通常情况,非绝对)

前置条件-->默认参数-->参数必填--->参数关联--->参数类型限制--->参数数据范围限制

case覆盖:主流程--->分支流程--->异常流程

3 JMeter基础

3.1 jmeter概述

JMeter简介

Apache JMeter™是Apache组织开发的一款开源软件,是典型的纯Java开发的应用程序,可以在不

同平台比如Windows、Linux或macOS系统上进行软件测试。JMeter主要用于应用程序的功能负载测

试以度量软件的性能,也可以用于其他类型的测试比如接口测试,API测试等。

JMeter版本

JMeter不同的版本,功能有所差异,对JDK的支持也不尽相同。新的JMeter版本有些功能会逐渐改

进完善,还会引入新的功能组件,性能也会逐步提升。因此在JMeter官方网站的最佳实践中,建议用户

无论如何最好使用最新的JMeter版本。

这里以最新的JMeter5.1.1版本进行介绍。

jmeter和loadrunner的区别
维度 Jmeter Loadrunner
跨平台 支持 不支持(LG组件可跨平台)
语言 java开发,支持java脚本语言(jsr223)、使用编程扩展 c语言开发、支持c、java、vb、vbs、c#、JavaScript
协议 支持协议少,但可以使用第三方插件进行扩展 支持众多协议
成本 开源免费 高昂的费用
脚本录制 使用badboy或代理服务器,功能有限 强大的录制回放功能
结果分析 提供的分析图表有限 结果分析器功能强大
持续集成 可与其他工具集成特定的测试框架 很难与其他产品集成

JMeter GUI界面

当JMeter以GUI模式运行时,窗口主要由三部分构成:

1.功能区

上方菜单栏,下方工具栏。菜单栏展示了JMeter提供的功能菜单,而工具栏中的图标是常见功能的

快捷方式。

2.视图区

以树状结构呈现JMeter元素,其中“Test Plane”是树的根节点,每一个节点就是一个JMeter元

素。

在此区域可以添加、删除节点,或者通过拖曳调整节点的位置。

3.内容区

在视图区选中一个JMeter元素节点,相应地在内容区则会显示该元素的内容。可以对其内容进行查

看、设置等操作

3.2 jmeter测试组成

JMeter构建测试类似于组装一台智能电子设备,比如智能手机。智能手机由CPU、内存、输入输出设

备(比如USB接口,摄像头等)、屏幕、电池等一系列物理部件构成的。

JMeter测试也是由一系列JMeter元素组合起来构成的,JMeter提供了构建测试的所有元素,你可以

随心所欲的将这些元素组装起来完成你想要的测试。

JMeter元素有以下四种类型的测试元素:

1)测试计划(Test Plan)

2)线程组 (Thread Group)

3)组件

六大组件包含配置元件、定时器、前置处理器、后置处理器、断言与监听器

组件下有若干个元件

4)控制器

包括取样器、逻辑控制器和测试片段

3.2.1 测试计划

测试计划描述了JMeter测试在运行时执行的一系列步骤。完整的测试计划由一个或多个线程组、逻辑

控制器、取样器、监听器、定时器、断言和配置元件组成。

测试计划元素是JMeter测试树的根节点,是唯一的,所有的测试元素节点都位于根节点之下。

3.2.2 线程组

在手工测试中,测试用例由测试工程师手动执行完成。而性能测试与自动化测试的测试用例由选择的测

试工具代替测试工程师来执行。JMeter执行测试的任务是由线程组来完成的。打个比方,线程组相当

于手工测试中执行测试用例的测试工程师。

线程组控制JMeter用来执行测试的线程数。要模拟多少个用户(称之为虚拟用户)来执行测试,可以

通过修改线程组的线程数来实现。比如将线程数设置为10,表示模拟10个用户执行测试。

所有的取样器与逻辑控制器都必须位于线程组下,从这个角度理解,JMeter测试计划真正开始于线程

组。其他元素,例如监听器,可以直接放在测试计划下,在这种情况下,它们将作用于所有的线程

组。

一个测试计划下可以有多个线程组,在测试计划中可以配置以并行或顺序方式启动多个线程组。

3.2.3 组件

JMeter中最基本的元素为元件,元件是JMeter测试中的最小功能单元,每个元件都具有某种特定的

功能。比如“HTTP Request”取样器元件,可以实现HTTP请求发送的功能。

JMeter提供了很多元件,为了方便用户使用与管理众多的元件,JMeter将多个功能类似或逻辑上相

关的元件归为一类,称为组件。JMeter包含六大组件: 配置元件(config element)、定时器(timer)、前置处理器(pre processors)、后置处理器(post processors)、断言、监听器(listener)。

配置元件(config element)

配置元件与取样器密切相关。类似于配置文件之于软件,软件配置文件可以影响软件的行为;同样通过

配置元件可以新增或修改请求内容,实现对请求的自定义。

定时器(timer)

默认情况下,JMeter线程按顺序执行取样器而不会出现暂停的情况。通过将定时器添加到线程组来指

定延迟。如果不加延迟,JMeter可能会在很短的时间内发送过多的请求到服务器,导致服务器负载过

重而崩溃。

定时器可以使在其作用范围内的每个取样器执行前延迟一段时间。

前置处理器(pre processors)

前置处理器在进行取样器请求之前执行一些操作。

  • 34
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耀晨一生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值