端到端自动化的开源框架

本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 什么是Playwright? Playwright是一个开源框架,用于对Web应用进行端到端测试。 什么是端到端测试? 这里的“端”,不是指A模块或B模块,而是可以理解为从前端到后端。举个例子,对于登录功能来说,如果只测前端,那么测试范围就是前端页面,可能会对后端接口进行mock。如果只测后端,那么测试范围就是后端接口等。而端到端呢,就是前端输入用户名密码,点击登录,与后端交互,查询数据库,鉴权,后端返回登录成功,前端进行页面跳转。端到端测试,可以理解为全流程测试,也可以理解为模拟用户场景测试。 Playwright框架特点 官方网站首页:https://playwright.dev/python/ 总结下重点,一是跨浏览器、跨平台、跨语言;二是自动等待;三是多用户场景测试;四是只需要一次登录;五是可以录制脚本。 快速入门 在官网的顶部菜单可以切换不同编程语言的教程: 本文及后续文章均选择Python。 安装 安装Python的Playwright,这里结合了pytest: pip install pytest-playwright 成功后安装浏览器: playwright install 这里也可以不安装浏览器,而是在脚本里面指定现有浏览器路径。 示例 test_example.py import re from playwright.sync_api import Page, expect def test_has_title(page: Page): page.goto("https://playwright.dev/") # Expect a title "to contain" a substring. expect(page).to_have_title(re.compile("Playwright")) def test_get_started_link(page: Page): page.goto("https://playwright.dev/") # Click the get started link. page.get_by_role("link", name="Get started").click() # Expects page to have a heading with the name of Installation. expect(page.get_by_role("heading", name="Installation")).to_be_visible() 执行pytest后默认会选择chrome在headless模式下运行,可以通过日志观察运行过程。 更新命令: pip install pytest-playwright playwright -U 编写测试 访问url: ...

录制脚本与元素定位

UI自动化最麻烦的就是定位元素,好在Playwright支持录制脚本,可以在界面进行操作,快速获取元素定位,生成测试脚本。