世界职业院校技能大赛(软件测试)技术创新思路分享(二)
软件测试作为数字时代的核心技能,其创新早已不再局限于传统代码调试。我们团队在辅导过程中,始终围绕三个核心方向突破:
- 以原始创意驱动技术革新——通过重构测试模型、开发智能脚本生成工具,我们尝试打破传统测试流程的边界,让效率与精准度实现质的飞跃;
- 以职业需求锚定创新坐标——聚焦加工工艺数字化、民生领域应用优化等真实场景,我们设计了多套“轻量级测试解决方案”,让技术创新真正服务于生产线提质、医疗系统升级等社会刚需;
- 以团队协同激发创新势能——从算法工程师到用户体验设计师,每位成员以跨领域的思维碰撞,将技术可行性、商业价值与人文关怀深度融合,展现了职业教育人才独有的复合创新能力。
软件测试与新兴测试工具Playwright 能否结合?
Playwright 是微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大。虽然诞生比较晚,但是现在发展得非常火热。
1. Playwright 的特点
-
Playwright 支持当前所有主流浏览器,包括 Chrome 和 Edge(基于 Chromium)、Firefox、Safari(基于 WebKit) ,提供完善的自动化控制的 API。
-
Playwright 支持移动端页面测试,使用设备模拟技术可以使我们在移动 Web 浏览器中测试响应式 Web 应用程序。
-
Playwright 支持所有浏览器的 Headless 模式和非 Headless 模式的测试。
-
Playwright 的安装和配置非常简单,安装过程中会自动安装对应的浏览器和驱动,不需要额外配置 WebDriver 等。
-
Playwright 提供了自动等待相关的 API,当页面加载的时候会自动等待对应的节点加载,大大简化了 API 编写复杂度。
2. 安装
要使用 Playwright,需要 Python 3.7 版本及以上,请确保 Python 的版本符合要求。
要安装 Playwright,可以直接使用 pip3,命令如下:
pip3 install playwright
安装完成之后需要进行一些初始化操作:
playwright install
这时候 Playwrigth 会安装 Chromium, Firefox and WebKit 浏览器并配置一些驱动,我们不必关心中间配置的过程,Playwright 会为我们配置好。
具体的安装说明可以参考:https://setup.scrape.center/playwright。
安装完成之后,我们便可以使用 Playwright 启动 Chromium 或 Firefox 或 WebKit 浏览器来进行自动化操作了。
3. 基本使用
Playwright 支持两种编写模式,一种是类似 Pyppetter 一样的异步模式,另一种是像 Selenium 一样的同步模式,我们可以根据实际需要选择使用不同的模式。
我们先来看一个基本同步模式的例子:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
browser = browser_type.launch(headless=False)
page = browser.new_page()
page.goto('https://www.baidu.com')
page.screenshot(path=f'screenshot-{browser_type.name}.png')
print(page.title())
browser.close()
这段代码使用了 Playwright
库来自动化浏览器操作。Playwright
是一个用于自动化浏览器操作的库,支持多种浏览器(如 Chromium、Firefox 和 WebKit)。
1. 导入 sync_playwright
from playwright.sync_api import sync_playwright
这里导入了 sync_playwright
函数,它是 Playwright
库的同步 API 入口点。同步 API 意味着代码会按顺序执行,每一步操作都会等待上一步操作完成后再继续。
2. 使用 sync_playwright
上下文管理器
with sync_playwright() as p:
sync_playwright()
返回一个 Playwright
对象 p
,它提供了对浏览器实例的访问。with
语句确保在代码块执行完毕后,资源会被正确释放。
3. 遍历不同的浏览器类型
for browser_type in [p.chromium, p.firefox, p.webkit]:
这里遍历了三种浏览器类型:Chromium
、Firefox
和 WebKit
。p.chromium
、p.firefox
和 p.webkit
分别代表这三种浏览器的实例。
4. 启动浏览器
browser = browser_type.launch(headless=False)
browser_type.launch(headless=False)
启动一个浏览器实例。headless=False
表示浏览器会以非无头模式运行,即你会看到浏览器窗口打开。如果设置为 True
,则浏览器会在后台运行,不会显示窗口。
5. 创建新页面
page = browser.new_page()
browser.new_page()
创建一个新的浏览器页面(标签页),并返回一个 Page
对象 page
,用于与该页面进行交互。
6. 访问百度首页
page.goto('https://www.baidu.com')
page.goto()
方法使浏览器导航到指定的 URL,这里是百度的首页。
7. 截图并保存
page.screenshot(path=f'screenshot-{browser_type.name}.png')
page.screenshot()
方法截取当前页面的截图,并将其保存到指定的路径。{browser_type.name}
是浏览器类型的名称(如 chromium
、firefox
、webkit
),因此截图文件会根据浏览器类型命名,例如 screenshot-chromium.png
。
8. 打印页面标题
print(page.title())
page.title()
返回当前页面的标题,并将其打印到控制台。
9. 关闭浏览器
browser.close()
browser.close()
关闭浏览器实例,释放资源。
10.运行效果
控制台运行结果如下:
百度一下,你就知道
百度一下,你就知道
百度一下,你就知道
下一章一起探讨如何与竞赛相结合!!!