• jmeter


    目录

    一、接口测试分类

    二、目前接口架构设计

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

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

    五、Jmeter目录介绍

    六、Jmeter常用组件

    七、Jmeter执行接口测试

    八、接口测试实战

    九、接口关联

    十、实现接口业务闭环

    十一、Jmeter动态参数设置

    十二、Jmeter接口测试断言

    十二、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代码服务器实现。

  • 相关阅读:
    Design Compiler工具学习笔记(5)
    python之代理ip的配置与调试
    天鹰优化的半监督拉普拉斯深度核极限学习机用于分类
    应用在汽车新风系统中消毒杀菌的UVC灯珠
    【Linux】关于进程
    小白学爬虫:通过商品ID获取1688跨境属性数据接口|1688商品属性接口|1688一件代发数据接口|1688商品详情接口
    【Android】WebView 基本使用
    高级前端面试100问(必会)
    java的实体类注解校验
    深入剖析:正则表达式的奥秘
  • 原文地址:https://blog.csdn.net/fanfangyu/article/details/126020829