接口自动化-常见工具

偶遇的一篇ui自动化博文链接

  • python语言
  • jenkins做持续集成
  • pycharm写代码
  • requests发送请求
  • stmplib+email发送邮件
  • pytest/unittest测试框架
  • allure测试报告
  • excel/yaml管理测试数据
  • git+gitlib仓库做版本管理

接口测试覆盖范围(逐步覆盖,优先级由高到低)

  • 主流程全覆盖
    • 如:用户模块:登录/注册/收货信息/用户信息等
    • 如:商品模块:创建商品/上下架商品/编辑商品/商品列表/商品详情等
    • 如:订单模块:下单/支付/发货/收货等
    • 如:售后模块:申请售后/售后拒绝/售后同意/退货/退款等
  • 正常场景全覆盖
    • 如:修改批量操作/搜索等
  • 关键业务流异常场景覆盖
    • 如:重复支付,权限校验等
  • 关键字段非法传参测试
    • 如:金额负数,非法状态转移
  • 手工很难或无法完成的测试
    • 如:分页为200条,计算量大的

断言

  • 数据结构断言
  • 数据类型断言
  • 期望值断言
  • 逻辑性字段断言,如状态字段
  • 敏感性字段断言,如金额字段

疑难杂症

  • 数据驱动
  • 多接口数据依赖关联
  • 数据库操作进行前后置处理
  • 数据库结果断言
  • 环境准备
  • ???接口路径或请求或响应数据结构变了怎么办???①url需要反复用到的进行封装,改的话只用改一处②请求参数同一个文件中管理,一个文件编辑器中还是很好修改的③需要断言的字段提取方式进行封装

既然修改是无法避免的,那么就做到方便修改,不要写重复代码和逻辑,重复的越多,改动就要改的越多还不一定能改全
虽然只是写脚本,但是也要优雅,不要出现迷惑代码,毕竟优雅用不过时
减少依赖,依赖无法避免时,强依赖转弱依赖

一些解决方法

  • 封装&分层
  • 测试环境初始化(如初始用户/初始店铺等)
  • 用例之间不要依赖,确保用例可以独立运行
  • 通过接口造数据(表关系复杂的,如多表关联)
  • 通过sql造数据(关系简单的,如个别字段)
  • 测试数据和代码隔离(1个参数需要隔离吗?30个参数需要隔离吗?100个参数需要隔离吗?隔离不隔离需要根据实际情况!)
原文地址:https://www.cnblogs.com/bonus_scene/p/15216467.html