内部接口:测试被测系统各个子模块之间的接口,或者被测系统提供给内部系统使用的接口。
外部接口:
1.被测系统调用外部的接口。
2.系统对外提供的接口。
接口测试重点:检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错处理,以及权限控制,分页,调用次数的限制。
1.基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾。
2.基于RPC架构,基于dubbo协议,thrift协议。SpringCloud微服务。
3.基于RestFul架构,基于json规范。基于http协议。
RestFul规则∶
接口地址: http://127.0.0.1/user , get(查询用户) , post(新增用户),put(修改用户).delete (删除用户)
Json数据格式:只有两种数据类型:键值对:{key : value}
数组:[arry1,arry2]
Jmeter+Ant+Git+Jenkins
Postman+Newman+Git+Jenkins
soapui, apipost..
backups :脚本备份目录,格式JMX。自动保存接口项目。
bin目录∶存放Jmeter的启动脚本,配置文件,模块文件。
jmeter.bat 启动Jmeter
jmeter.properties 核心配置文件。
docs:离线帮助文档。
extras∶存放与第三方的集成构建文件。如:集成Ant,Jenkins。
lib目录: 库文件,存放jar包。
licensce:许可证文件。
printable_docs:用户手册
1.测试计划:起点,所有组件的容器
2.线程组:代表一定数量的用户
3.取样器:向服务器发送请求的最小单元
4.逻辑控制器:结合取样器实现一些复杂的逻辑,控制组件的执行顺序
5.前置处理器:在请求之前的工作
6.后置处理器:在请求之后的工作
7.断言:用于判断请求是否成功
8.定时器:负责在请求之间的延迟或间隔。
常用定时器:固定定时器、高斯随机定时器、同步定时器
9.配置元件:配置信息
10.监听器:负责收集结果
执行顺序:
测试计划》线程组》配置元件》前置处理器》定时器》取样器》后置处理器》断言》监听器
作用域:
必须组件:测试计划,线程组,取样器
辅助组件:除了必须组件外
组件会作用于父组件,同级组件,以及同级组件下的所有子组件。
1.拿到api接口文档(或抓包获取接口),熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码;
2.编写接口测试用例
测试思路:
正例:输入正常入参,查看接口成功返回。
反例:
鉴权:空,必填,错误,鉴权过期,鉴权次数限制...
参数:空,类型异常,长度异常,错误码的覆盖
其他:黑名单、分页场景,调用次数限制。
兼容性:一个接口对应多个版本App
3.使用接口测试工具执行。
4.Jmeter+Ant+Git+Jenkins实现持续集成输出接口测试报告。通过电子邮件发送。
1、正则表达式提取器
2、Jsonpath提取器
①代表根目录 $
②取子节点
.
$[" "]
③取得复杂节点的值(结合下标和子节点)
例:$.tags[17].name
1、增加
因为标签名不能重复,所以需要加上一个随机数。
2、批量删除标签
正则取值的格式:id_1, id_2, id_3
3、文件上传
第一种方式:在mime写入:multipart / form_data
第二种方式:勾上post使用multipart / form_data, 然后在高级里面选择【java】
1、调试取样器
2、Jmeter+fiddler调试