电子商务查询网站,做直播大秀的平台和网站,南京网站专业制作,山西太原网站建设1、背景
3月初#xff0c;运营同事配置了个还未上线的页面到网站首页 banner#xff0c;导致用户点了报错。尽管这次很明确是运营人为操作失误引起的故障#xff0c;但过往此类核心页面的访问异常#xff0c;我们已不是第一次遇见。 从平台整体利益触发#xff0c;我们各…1、背景
3月初运营同事配置了个还未上线的页面到网站首页 banner导致用户点了报错。尽管这次很明确是运营人为操作失误引起的故障但过往此类核心页面的访问异常我们已不是第一次遇见。 从平台整体利益触发我们各方制定了对应的后续处理方案。 运营端加强后台操作的规范监督运营人员操作添加宣传链接后需二次确认对应位置的内容显示正常。 研发端对添加进去的链接进行访问检查保证其可用性。 测试端采用自动化手段持续检测核心页面的访问可用性和功能。
关于测试端的自动化检测我们采用的是UI自动化接口自动化并行的方式。而且相较UI来说接口可以更高效灵活的实现持续检测。
2、什么是接口自动化
所有可以替代人工行为产生数据交互的行为都叫自动化。
直观来看大家很容易理解端到端的UI自动化它模拟的是用户可视化的页面操作行为。
而接口自动化则是对这些UI操作行为触发的数据传输行为更为直接的模拟发送。
行业内按照层级分类的方式对测试进行分类分为单元、接口和UI三个层级而各层的产出/投入比可以形象的表述为测试金字塔越往上层其维护成本越高收益越小。 单元测试关注代码的实现逻辑比如一个if分支或者一个for循环的实现 接口测试关注的代码所提供的接口是否可靠 UI测试关注的是系统集成后的界面显示层测试 单元测试自不必说需要我们深入了解代码实现具备熟练的开发能力。因此考虑到产出和投入成本接口测试才是整个自动化层级中测试人员最应该优先推动实践的测试类型再由此不断深入到单元测试实现 DevOps。
3、接口自动化框架浅析
脚本型
可以根据自身需求结合数据驱动、关键词驱动进行深度的自定义。适合不是接口不大无需多人协同的非常规型接口测试。
常见的框架如下 PythonRequestsunittestHTMLTestRunner Maventestnghttpclientjenkinsallure 工具型 Jmeter Postman sopui loadrunner metersphere interface auto test RobotFramework HttpLibrary … 所有的工具型软件最终的执行部分都是通过对应语言的网络请求库、或者其它基础请求工具去模拟发请求只不过是前端的数据组织形式存在差别。
其中除了metersphere、interface auto test这样平台化的工具其它工具对于团队协作和持续测试的支持力度很低需要结合jenkins等CI工具进一步定制。
4、接口自动化的价值
执行效率高
单个接口或者基于接口编排的场景执行不人为限速的话执行速度可以以毫秒为计。且执行过程无需渲染页面不依赖执行设备的性能可更快的反馈测试结果。 实现难度低
通过模板化数据流量或者基于标准的swagger接口文档可快捷生成基础用例维护人员只需关注与业务测试点关联的请求参数设计。 执行稳定可靠
得益于大部分应用系统都会保持接口向前兼容的特性实践过程中也不难发现接口测试的稳定性是有保障的。
发现问题有效性高
经过合理调教的接口测试系统结合良好的用例设计规范加上天然自带的精确的时间点、请求参数和返回值能够做到精准定位问题场景和原因再也不用听上游说“你复现下试试”。 5、实践中的计划 面向存量系统接口进行测试
这是我们正在做的基于流量录制系统和现有的接口文档对现有接口进行测试用例设计、实现和持续执行。实现多机房点的每日巡检以及上线前的beta版本的全量接口测试并反馈回归结果。
新接口的测试前置
当前开发中的版本接口结合开发文档和测试环境进行前置的接口用例设计、调试。通过接口自动化测试反向驱动开发业务开发过程中的质量保障推动开发自测实现集成测试前的“测试驱动开发”。
接口用例设计扩展
结合接口参数的可遍历性可以设计开发能自动生成批量接口测试的用例。拆分用户的实际使用场景重新组合接口编排发掘出更大量的场景接口测试用例。