文章目录
一、什么是接口、接口测试,为什么要做接口测试?
API,应用编程接口,简称接口;通过接口,可以是程序和程序之间,能够相互交互;
接口分为两大类:基于TCP全双工(不适用于Postman)和基于HTTP半双工(适用于Postman)
接口测试是测试项目和项目之间,模块和模块之间,组件和组件之间的数据交互和权限鉴定。
二、接口分类
内部:开发的接口给内部系统使用
外部:①被测项目调用外部接口;②被测项目提供接口给外部使用
测试重点: 接口功能正确性,参数的正确性,异常的处理能力,鉴权,兼容性
性能测试步骤:
- 性能测试准备
①需求分析;
②明确性能测试目标(指标值);
③了解软件功能制定测试计划;
④编写测试用例;
⑤执行测试用例并得到测试报告。 - 搭建性能测试环境
- 性能脚本开发
- 性能测试脚本执行
- 结果分析与调优
- 测试报告与结果追踪
http协议
HTTP协议是一种超文本传输协议,是客户端和服务端互交数据,分为请求和响应两个部分;
请求:请求行(请求方式和请求路径),请求头,请求报文
请求方式:get post put delete
请求路径:url
请求头:Accept : application/json指定客户端接受的数据格式;
X-Requested-with :异步请求(登录,ajax);
User-Agent :客户端的类型;
Content-Type :客户端发送的数据的类型;
Cookie :服务器返回给客户端并且保存的Cookie信息。
响应:响应行(响应码和响应信息),响应头,响应报文
- 1xx : 指示信息 – 表示请求已接收,继续处理
- 2xx : 成功 – 表示请求已被成功接收,理解
- 3xx : 重定向 – 要完成请求必须进行更进一步的操作
- 4xx : 客户端错误 – 请求有语法错误或请求无法实现
- 5xx : 服务器端错误 – 服务器未能实现合法的请求
三、Jmeter介绍
什么是JMeter?
JMeter是一款Java开源工具,用于性能负载测试,它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。
JMeter工作原理?
JMeter就像一群将请求发送到目标服务器的用户一样,他收集来自目标服务器的响应以及其他统计数据,这些统计数据通过图形或表格显示应用程序或服务器的性能。
性能测试指标:①响应时间;②并发用户数;③吞吐量;④系统性能计数器;⑤思考时间
- 响应时间(2 5 8):对请求做出响应所需要的时间,使用户感知软件性能的主要指标,响应时间包括:用户客户端响应时间、请求/响应数据网络传输时间、应用服务器处理时间、数据库系统处理时间
- 并发用户数
用户数包括:系统用户数(软件系统注册的用户总数);在线用户数(某时间段内访问的用户数,这些用户只是在线,但不一定同时做某一件事情);并发用户数(某一个事件同时向软件系统提交请求的用户数)
- 吞吐量
性能测试:指单位时间 内系统处理用户的请求数
从业务角度看:吞吐量可以用:请求数/秒,页面/秒 人数/天 或 处理业务数/小时等单位来衡量
从网络角度看:吞吐量可以用字节/s来衡量
对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,能够说明系统的负载能力
TPS:每秒事务数 -> 吞吐率
以不同方式表达的吞吐量可以说明不同层次的问题
以字节数/秒方式:表示要受网络基础设施,服务器架构,应用服务器制约等方面的瓶颈;
已请求数/秒方式:主要是受应用服务器和应用代码的制约体现出的瓶颈。
公式 : F=VUR/T=1001/5=20
F:吞吐量 VU:表示虚拟用户个数 R: 表示每个虚拟用户发出的请求数 T:表示性能测试所用的时间 - 系统性能计数器:描述服务器或操作系统性能的一些数据指标 内存 CPU磁盘等资源使用率使用资源监控
- 思考时间:消息和消息之间发送的间隔时间
从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔;
在做性能测试时,为模拟这样的时间间隔,引入了思考时间这个概念更加真实的模拟用户的操作。
backups:备份目录,jmx的脚本。自动的保存你的接口项目。
bin目录:存放jmeter的启动脚本,配置文件,模块文件。
jmeter.bat,启动文件
jmeter.propties全局配置文件
如果要修改为中文,则在此配置 language = zh_CN
docs离线帮助文档
extras存放和第三方集成构建文件。比如: Ant, build.xml
lib 库文件,jar包
licenses许可证文件
printable_docs用户手册
组件(元件)介绍
- 测试计划:jmeter的起点和容器
- 线程组:代表一定的虚拟用户
- 取样器:发送请求的最小单元
- 逻辑遥控器:控制组件的执行顺序
- 前置处理器:在请求之前的操作
- 后置处理器:在请求之后的操作
- 断言:判断请求是否成功
- 定时器:是否延迟或者间隔发送请求
- 配置元件:取样器的配置信息
- 监听器:负责收集测试结果
执行顺序:测试计划 -> 线程组 -> 配置元件 -> 前置处理器 ->定时器 ->取样器 -> 后置处理器 -> 断言 -> 监听器(察看结果树)
定时器:固定,高斯,同步
作用域:组件会作用于它的父级组件,同级组件以及同级组件的子组件 。
接口测试流程
1:拿到接口文档(抓包、录制),熟悉接口业务,接口地址,鉴权,入参,出参,错误码,兼容。
2:接口测试用例的设计和评审
正例:
反例:①鉴权反例(必填,错误,鉴权码过期…)
②参数反例(必填,参数类型异常,参数长度异常)
③其他场景(黑名单,调用次数限制,分页场景)
④兼容性(一个接口对应多个版本App)
3:执行接口测试
4:团队协作,持续集成并生成报告发送邮件等。
Jmeter接口测试
cookie鉴权(HTTP Cookie管理器)的原理:
客户端第一次访问服务器,服务器就会自动生成Cookie,然后通过响应头里的Set-Cookie传输到客户端,然后保存客户端;
第2~N次访问服务器时,那么在请求头里面通过C