接口自动化与ui自动化区别
测试目标
接口自动化:
接口执行效率高,可测试的代码覆盖率高,维护成本低,属于低成本,高收益。
主要关注应用程序的后端功能,通过发送HTTP请求并验证响应是否符合预期来测试API是否按照规范工作。它校验的是客户端与服务端交互的部分,包括业务逻辑以及服务端返回的数据。
接口自动化测试基本流程:
模拟发送请求
传入接口数据
获取响应结果
断言
UI自动化:
优点是:从用户的角度出发,通过模拟用户操作UI界面元素来验证系统的功能。它更贴近真实用户的使用场景,能够完全模拟用户行为
缺点是:UI容易受其他原因(电脑卡顿,浏览器卡顿,手机或模拟器卡顿,网速等原因)影响导致脚本执行失败,覆盖率难以提升,维护成本较高,属于投入较高,收益较低的类型。
UI自动化测试基本流程:
进行元素定位
模拟手动操作
输入测试数据
获取输出结果
断言
执行效率和稳定性
接口自动化:执行效率较高,因为调用接口比打开页面要快很多。接口自动化不存在设备卡顿、系统弹框等问题,因此测试过程更稳定。
UI自动化:执行效率较低,因为需要打开页面并模拟用户操作。UI自动化容易受设备卡顿、系统弹框等因素影响,导致脚本执行失败,稳定性较差。
维护成本
接口自动化:由于接口变更的概率较低,维护成本相对较低。在快速迭代的情况下,页面的改动可能会很频繁,前端小的改动可能需要测试的大改,因此UI自动化的维护成本较高。
应用场景和工具
接口自动化:常用工具包括Python的requests库等,适用于后端功能的测试。
UI自动化:常用工具包括Selenium和Appium和uiautomator等,适用于模拟用户操作UI界面元素。
综上所述,接口自动化和UI自动化各有优劣,选择哪种方法取决于具体的测试需求和项目特点。