写在前面
UI是用户使用产品的入口,用户直观的与UI交互,从而使用后段一系列服务。常见的测试工具有Robot Framework、Selenium等
一个典型的测试分层结构如上图所示,UI测试属于较高纬度从产品层面测试系统功能的方式。然而UI的验证会引入大量的不稳定因素,UI自动化在某些场景下性价比极低。例如:互联网应用更新迭代飞速,大到功能约束,小到界面每个按钮的排版,颜色等。因此:需要根据场景,项目特点,人员技术栈选取正确的自动化策略、技术。
selenium
最为常见的浏览器控制方法,通常selenium结合webdriver配合使用,selenium 通过 webdriver 控制浏览器,再对上层执行层暴露 API 或 sdk
应用于web的自动化测试工具,支持多平台、多浏览器、多语言来实现自动化,优点如下:
开源、免费;
多浏览器支持:chrome、Firefox、IE、Opera等;
多平台支持:Linux、Windows、MAC;
多语言支持:java、python、Ruby、C#、JavaScript、C++;
对web界面有良好的支持;
简单(API简单)、灵活(开发语言驱动)、成熟的社区支持;
支持分布式测试,可以把测试用例分布到不同的测试机器的执行;
robotframework
一款基于python语言编写的自动化测试框架工具,具备良好的扩展性,支持关键字驱动,支持多种类型的客户端和接口,可进行分布式测试;
robotframework实际调用SeleniumLibrary库,由于已经对底层的selenium.webdriver做了二次封装,所以使用方便,但是代码灵活性程度降低
Pupprteer
教程:用 Jest 与 Puppeteer 进行 UI test
End-to-end Tests that Don’t Suck with Puppeteer
Pupprteer由 google 开源的一款用于控制 headless 浏览器的 node 库,可在 nodejs 端实现页面自动化测试
Pupperteer是一个浏览器自动化工具,实现自动化控制浏览器的目的,但是他并不具有测试功能,如断言、生成测试报告等,因此需要结合其他测试框架,如jest。