0


jmeter

一、接口测试分类

内部接口:测试被测系统各个子模块之间的接口,或者被测系统提供给内部系统使用的接口

外部接口:

  • 被测系统调用外部的接口。
  • 系统对外提供的接口。

接口测试的重点:检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错处理,以及权限控制,分页,调用次数的限制。

二、目前接口架构设计

  • 基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址,wsdl(webservice描述性语言)结尾
  • 基于RPC架构。基于dubbo协议,thrift协议。SpringCloud微服务。
  • 基于RestFull架构。基于json规范。基于http协议。

RestFull规则:

接口地址:http://127.0.0.1/user,get(查询用户),post(新增用户),put(修改用户),delete(删除用户)

http协议详解:

请求:请求行,请求头,请求正文

Json数据格式:只有两种数据类型

键值对:(key:value)

数组:[array1,array2]

三、市面上的接口测试工具

  • Jmeter+Ant+Git+Jenkins
  • Postman+Newman+Git+Jenkins
  • soapui,apipost.fiddler,chariles

四、Jmeter简介,安装,环境变量的信息

基于java语言压力测试工具,可以做接口测试,也可以做性能测试。

安装:JDK1.8以上,配置环境变量

五、Jmeter目录介绍

backups:脚本备份目录,格式 JMX

bin目录:存放Jmeter的启动脚本,配置文件。模块文件。

Jmeter.bat:启动Jmeter

Jmeter.properties:核心配置文件

docs:离线帮助文档

extras:存放与第三方的集成构建文件,集成Ant,Jenkins

lib目录:存放jar包

licenses:许可证文件。

六、Jmeter常用组件

1.测试计划:起点。所有组件的容器

2.线程组:代表一定数量的用户

3.取样器:向服务器发送请求的最小单元

4.逻辑控制器:结合取样器实现一些复杂的逻辑。

5.前置处理器:在请求之前的工作。

6.后置处理器:在请求之后的工作。

7.断言:用于判断请求是否成功。

8.定时器:负责在请求之间的延迟间隔,固定,高斯,随机

9.配置元件:配置信息

10.监听器:负责收集结果

顺序:

测试计划》线程组》配置元件》前置处理器》定时器》取样器》后置处理器》断言》监听器

作用域:非常重要

必须组件:测试计划,线程组,取样器

辅助组件:除了必须组件外

辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件。

七、Jmeter执行接口测试

  • 拿到api接口文档(Fiddler)、熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码。
  • 编写接口测试用例。

测试思路:

正例:输入正常入参,查看接口成功返回。

反例:

鉴权:空,错误,鉴权过期,鉴权次数限制......

参数:空,类型错误,长度限制,错误码的覆盖。

其他:黑名单,分页。

  • 使用接口测试工具执行。
  • Jmeter+Ant+Git+Jenkins实现持续击沉输出接口测试报告,通过电子邮件发送。

八、接口测试实战

顺序:

测试计划》线程组》配置元件》前置处理器》定时器》取样器》后置处理器》断言》监听器

配置元件

10000,高峰期,10分钟内1000个用户,1分钟100个用户,1秒=100/60=5/3

HTTP Cookie管理器:第一次用set Cookie发给客户端。第二次通过客户端发送给服务器

HTTP 请求默认值:协议、ip、HTTP协议(80端口) 、HTTP协议(443端口)

用户定义的变量

取样器

HTTP请求:100.200.30X重定向,404页面没找到,505服务器错误

自动重定向:选300,会自动重定向到新的页面,只会跳转到最终的页面,最后的结果

跟随重定向:把中间每一步的路径记录下来

对post请求使用multipart/from-data:发送post请求时,使用multipart/from-data一般情况下用于文件上传,默认不选中

与浏览器兼容的头: 没什么作用

参数: 用于上传键值对的

消息传递:用于传json的

鉴权码

1.通过接口获取,appid,secret

2.登录之后自动生成,username,password

cookie和token是很有可能同时存在鉴权

cookie,session,

察看结果树

文件名:查找,以文件的方式查看结果

取样器结果:线程组的名字、示例开启的时间、加载的时间、连接时间、网关时间、传输的字节数、发送的字节数、请求头的字节数、body的字节数、错误、数据类型、

请求:请求头、请求内容(请求方式、请求路径、请求参数)

响应数据:可以以json的形式查看结果

编辑标签接口

九、接口关联

1.使用正则表达式实现接口关联

如果说一个请求里面有多次请求服务器。

2.使用Jsonpath表达式实现接口关联

从根目录开始找(绝对路径):$.expires_in

从任意目录开始找(相对路径): $.expires_in

json提取器:只能作用于返回值为json的

十、实现接口业务闭环

增、删、改、查。

十一、Jmeter动态参数设置

随机数字:${__Random(100000,999999,random_int)}

随机字符串: ${__RandomString(6,abcdefg1234567890hijklmn,random_str)}

十二、Jmeter接口测试断言

响应成本:返回的json数据

响应代码:200,404

响应信息:OK

响应头:

请求头

URL

文档(文本):返回的json数据(文本的方式去判断)

忽略状态:当有多个断言时,如果有一个断言失败了,另一个成功了,那么结果是成功。

请求数据

字符串:响应内容包含需要匹配的字符串,大小写敏感,不支持正则

包括:响应内容包含需要匹配的字符串,大小写敏感,支持正则

匹配:响应内容完全等于需要匹配的字符串,大小写敏感,支持正则

相等:响应内容完全等于需要匹配的字符串,大小写敏感,不支持正则

十二、Jmeter接口调试方案

1.通过【察看结果树】里面的请求信息和响应信息。

2.使用【调试取样器】

3.Jmeter结合fiddler

在没有接口文档,只能通过抓包去获取接口信息的时候使用。

1.badbody(淘汰)

2.使用Jmeter自带的http代码服务器实现。

标签: 测试工具

本文转载自: https://blog.csdn.net/fanfangyu/article/details/126020829
版权归原作者 菜鸟教程*…* 所有, 如有侵权,请联系我们删除。

“jmeter”的评论:

还没有评论