茹炳晟-API自动化测试笔记

 微服务架构图:

 微服务-API测试

1、单个API功能正确

第1步:数据准备

第2步:调接口ABC获取数(如token获取) 将数据传递给其他接口

第3步:测试API接口调用

            请求验证、response验证、数据验证(如数据库、redis、es等)、日志验证、全局配置变更验证、..

2、多个API组合调用时序正确性

3、保证BFF层功能逻辑正确性

测试分析:

流量录制和回放  : 在线上环境,通过网络流量抓包,就能知道前端调用了后端哪些接口、以及接口之间的时序 。即纵向调用链路

                 抓包工具抓取HAR包

API调用链路追踪: 即横向调用链路

 

 调用链路可视化工具:

 如何测试?

1、postman等图形界面工具功能薄弱,测试数据准备需人工、复杂结果不能检查、数据传递体验差等等

2、代码测试API接口,可以CI(测试集成)  。如java的REST-assured , python 的requests模块测试API

postman等工具的接口用例如何转换成代码的用例?

 1、postman的code功能 , 但会丢失断言。且一个一个code比较慢

 2、写个解析json文件的程序

API 接口功能测试核心就是调用参数的组合  。如何自动化生成API测试数据呢?

 

 自动化工具不能理解业务,参数多时,参数组合指数增长,检查结果也指数增长,很多组合在真实业务中无此场景

 那怎么生成测试数据呢?

1、从生产环境提取接口调用的数据组合

2、开发自动化数据生成器:用于扫描API接口,判断入参的类型,根据类型生成对应的数据,如string类型,就生成数字、null等数据,使用数据调用接口

3、引入test data service生成测试数据

 

4、并发测试:只是测试在并发场景下的功能是否正确,不属于性能测试。  测试关键:触发更多的并发  thinktime=0,并发用户数一般不超过3位数。

5、API性能测试:尽可能模拟真实的场景的thinktime,尽可能接近生产环境的并用户数。  工具:如Jmeter的负载集群。

          性能基准测试

          容量测试

          压力测试

          ....

       

6、API测试过程中的后向兼容性测试

被测系统版本变更 ,如1.1 - > 1.2(请求:可能新增或尖山必填参数 ;   reponse: 删除了某些结果或修改了某些字段名等,而这个结果下游要使用 ),  测试用例是基于1.2版本设计和执行的。

而线上可能还存在某些系统在调用时依旧按1.1的接口来调用,此时就可能出现问题。

解决办法:

低版本1.1用例  在被测系统1.2上执行,全部通过,则就测试了请求的向后兼容性。但没测到响应的向后兼容性。

对每个api的Response的每个字段断言工作量巨大,

引入结果存储,1.1的结果和1.2的结果进行对比,发现不同则报警,然后人工排查

7、微服务的环境治理

8、

原文地址:https://www.cnblogs.com/bigfacecat-h/p/15149457.html