zoukankan      html  css  js  c++  java
  • 茹炳晟-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、

  • 相关阅读:
    苹果MAC OS查看MAC地址及修改ip
    win10系统绑定本地IP和mac地址
    CentOS7 配置阿里云yum源,非常之简单
    Prism框架研究(一)
    如何建立一个WCF服务并将其发布到IIS上
    SQL Server2012如何导出sql脚本并且还原数据库
    WPF设置软件界面背景为MediaElement并播放视频
    一个加载时带动画效果的ListBoxItem
    无法将从VSS中的解决方案添加到TFS的源代码管理器中
    关于WPF中Popup中的一些用法的总结
  • 原文地址:https://www.cnblogs.com/bigfacecat-h/p/15149457.html
Copyright © 2011-2022 走看看