zoukankan      html  css  js  c++  java
  • 接口自动化-常见工具

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

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

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

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

    断言

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

    疑难杂症

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

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

    一些解决方法

    • 封装&分层
    • 测试环境初始化(如初始用户/初始店铺等)
    • 用例之间不要依赖,确保用例可以独立运行
    • 通过接口造数据(表关系复杂的,如多表关联)
    • 通过sql造数据(关系简单的,如个别字段)
    • 测试数据和代码隔离(1个参数需要隔离吗?30个参数需要隔离吗?100个参数需要隔离吗?隔离不隔离需要根据实际情况!)
  • 相关阅读:
    基于事件的异步编程
    基于任务的异步编程
    C#异步编程
    C#2.0
    Mac上安装Brew
    PHP中三维数组转二位数组,并且根据某个字段去重
    LNMP环境安装Laravel之后, 除了根目录下可以访问, 其他都是404页面
    LNMP一键安装包安装的mysql远程连接不上的问题
    CentOS7 安装Redis4.0
    CentOS 7 源码包安装SVN及使用
  • 原文地址:https://www.cnblogs.com/bonus_scene/p/15216467.html
Copyright © 2011-2022 走看看