1、提高测试(回归测试)效率、节约成本;、保证每次测试的一致性。自动测试具有一致性和可重复性的特点,使测试更客观,提高测试的信任度;、将重复的任务自动化,避免因重复劳动产生厌倦,也能让测试人员有更多精力设计更多更好的测试用例,提高测试准确性和测试人员的积极性;、能执行一些手动测试比较困难或手动执行成本较高的测试;5、为了更好的持续集成和交付。
二、为什么做接口自动化测试:供应链业务,ToB的流程较多,客制化严重,主流程相似,但逻辑细节有很多分支,底层的改动影响范围难确定,只靠手工测试执行慢,且容易覆盖不全,接口自动化迫在眉睫。如下图所示:主流程都是客户下单后经过我们系统处理下发给下游承运商(如中间主刺),但每个客户可能都存在细微逻辑差别(分支逻辑如主刺上的边刺)。
三、接口自动化落地以及迭代的过程:1、落地过程介绍:落地其实就是想好用什么做,开始做,让做好的东西落地(后优化)执行使用的过程。
我们的落地以及优化的过程分8个部分完成(如上图):
下面我将详细为大家解读如何以“case的持续积累”为主线,按部就班地持续优化,由量变到质变的接口自动化落地过程。
、落地过程详细解读:1)重要客户的用例编写:这里分两步,一是要先选取一个“好”的框架,第二才是“花时间”去写自动化case。
a)有关自动化工具(框架):
如果去网上搜“接口自动化”会有很多种实现方式,Junit、Phpunit、Pytest、jmeter等等很多种;
综合学习成本、持续集成、用例管理、测试报告、扩展性等多方面考虑,最终选择了Httprunner,它有如下的优点:
a.继承Requests的全部特性。满足HTTP(S)接口测试的各种场景需求b.测试用例描述方式有表现力。支持参数化、函数、以及结果提取等方式,可用简洁的方式进行各种用例描述。c.测试用例与执行代码分离。采用YAML/JSON描述测试用例,降低用例编写及维护成本;用例转化格式后,可配合不同的执行引擎(比如Jmeter、Locust),达成不同的测试目的(性能测试)。d.用例可以基于日常手工测试录制(后进行简单调试),避免重复开发。基于HAR实现接口录制和用例生成功能(harcase)。e.测试用例分层合理(api-testcase-testsuit)。高抽象,避免一个接口改动造成大面积用例修改;高复用,便于创建复杂测试场景;方便用例的分组、按需执行。f.支持测试用例和测试数据分离。避免等价类等场景需要构建重复用例;同时方便构建海量性能测试数据。g.测试结果统计报告简洁、清晰、详尽;方便进行结果查看和问题定位。h.高扩展性。能够轻松实现二次开发、Web平台化、Jenkins等持续集成工具对接(采用CLI调用)、自定义报告模板等。
另外该框架是开源的,社区资源比较充足,已经有很多人
转载请注明:http://www.0431gb208.com/sjsbszl/157.html