天天看点

为什么要做接口自动化,怎样做

一、为什么要做接口自动化

  1. UI能模拟用户的真实行为,但是受外部的原因,如电脑卡顿,浏览器卡顿,网速,需求变动等,从而容易造成脚本执行失败,维护成本较高,投入较高等问题
  2. 接口测试直接验证模块逻辑的正确性,去除UI干扰
  3. 接口测试难度低于UI测试,执行效率高于UI,可测试的代码覆盖率高,维护成本低,属于低成本,高收益
  4. 有些项目产品数据列表的内容比较多,不好定位,难以开展UI自动化测试
  5. 接口自动化能够解放人力,提升工作效率

二、了解一波接口

什么是接口

接口一般来讲分为两种:

  1. 程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。
  2. 系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

常用接口

  1. http接口走http协议,通过路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和post方法来请求。
  2. webservice接口走的soap协议,通过http传输,请求报文和返回报文都是xml格式的。

http登录接口文档范例

为什么要做接口自动化,怎样做

获取接口关键信息

  1. 开发提供接口文档/接口规范(正规流程),如上接口文档范例;

说明:如果没有接口规范/文档(不正规流程),需要使用抓包工具,如Fiddler、wireshark、httpwatch或直接在谷歌或火狐浏览器F12等获取接口关键信息;

  1. 接口关键信息:
  • 协议类型:http/htts
  • 请求URL/IP:如:网址:https://www.baidu.com/;ip:127.0.0.1
  • 端口:http默认端口:80,https默认端口:443或自定义端口
  • 请求方式:如post/get/put/delete
  • 表头信息:如内容类型Content-Type:application/json
  • 请求参数:注意参数的传参类型如json;参数的属性如名称、类型、是否必填,参数的个数;
  • 响应结果:注意输出内容的类型如json
为什么要做接口自动化,怎样做

三、什么项目适合做接口自动化测试

  1. 任务需求明确,不会频繁变动
  2. 项目周期较长,回归测试频繁(>=5次),开展自动化确实能提升测试效率及质量
  3. 产出的效益高于投入
  4. 测试预留的时间比较充裕

四、接口自动化关键点

  1. 开发测试脚本需充分考虑脚本的复用性
  2. 业务与数据分离

五 什么时候可以做接口自动化

  1. 需求评审完毕,接口需求明确稳定
  2. 版本升级项目发布之前的全流程回归测试

    六、与开发同步进行接口用例脚本开发

    软件开发未完成,接口还无法调试,测试如果需要同步开发接口,需根据接口文档规范,利用MOCK SERVER等接口模拟工具模拟接口,从而进行接口自动化用例调试开发

七、接口自动化测试的流程

业务流程

  1. 评估投入与收益比,是否需要进行接口自动化
  2. 根据项目组成员的能力及项目属性,选取适当的自动化工具或开发语言
  3. 分析业务,在功能测试用例提取主业务场景
  4. 先开发一个主业务场景脚本,根据需要补充其他业务场景

开发流程

  1. 提取脚本可重复项,封装简化脚本,利用公共类或公共函数等方法,提高脚本的利用率、可读性及可维护性
  2. 提取脚本中可变的参数,修改成变量
  3. 利用csv、Excel、ini、数据库、yaml等参数化数据信息,使业务与数据分离,实现数据驱动测试
  4. 引入日志,出现问题能迅速定位
  5. 添加断言并生成可视化报告
  6. 利用Jenkins持续集成工具,实现自动打包,按时发布并执行,生成结果邮件发送给项目相关人

原文链接:https://blog.csdn.net/yiwenrong/article/details/101675497

优秀不够,你是否无可替代

软件测试交流QQ群:721256703,期待你的加入!!

欢迎关注我的微信公众号:软件测试君

为什么要做接口自动化,怎样做