playwright GitHub Actions运行测试
上篇讲到了多浏览器并行运行测试以提升执行效率,本文将以介绍持续集成(CI)以及Github aciton工作流
1. 决定如何运行测试
没有配置为在持续集成系统中运行的自动化测试并不是真正的自动化测试。它们应该在典型的开发工作流中被触发运行,比如提交代码或打开拉取请求。幸运的是,配置Playwright
测试进行持续测试非常简单。
-
• 第一步是决定何时运行测试。理想情况下,测试应尽可能在代码库更改后立即运行。如果测试执行时间足够快,那么测试可以作为拉取请求的一部分运行,或在更改合并到主分支后运行。如果测试执行时间较长,则可以在代码更改后运行部分测试,剩余的测试可以安排在每隔几个小时或每晚运行。
-
• 第二步是决定在哪里运行测试。测试应在团队用于开发的相同CI系统中运行。这可以是轻量级的
GitHub Actions
工作流,也可以是Jenkins
、Azure DevOps
、CircleCI
或其他类似工具平台的一部分。
2. 编写GitHub
工作流
对于本教程,我们将创建一个GitHub Actions
工作流来运行示例测试。GitHub Actions
内置于GitHub
仓库中,开源项目可以免费使用。
我们将编写一个工作流,仅运行示例测试。类似Trello
的应用测试需要一个单独的仓库,尽管可能创建,但配置起来会显著更难。
GitHub Actions
工作流可以由多种仓库事件触发。以下触发器对我们的端到端测试最有意义:
当更改推送到主分支时 当向主分支的拉取请求打开时 当有人希望手动启动测试时 工作流必须克隆仓库,安装依赖项,并启动测试。
在项目根目录下创建一个名为.github/workflows
的新目录,并在其中创建一个名为run-examples.yml
的文件。在文件中添加以下内容:
name: Run the example tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out project
uses: actions/checkout@v3
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Clean install the project
run: npm ci
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test tests/example.spec.ts tests/demo-todo-app.spec.ts
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
3. 运行工作流
只能从GitHub
仓库运行GitHub Actions
工作流。如果想运行此操作,则需要为项目创建一个仓库并上传代码。
要手动触发工作流,请点击仓库网页中的“Actions”
标签,选择“Run the example tests”,然后点击ac。几秒钟后,将看到工作流启动(希望如此)。您可以在工作流运行时观看控制台输出。
通过本章的学习,我们已经掌握了如何使用GitHub Actions
来自动化运行我们的Playwright
测试,使其成为我们持续集成过程的一部分。
4、进一步学习与实践
恭喜你!你已经完成了本教程的指导部分。从下面开始,你的学习将以自我指导为主。
在本章中,你将有机会独立编写更多的测试,并进一步改进测试自动化项目。
5、编写更多测试
在本教程中,我们只为Trello
类似应用编写了几个测试。你可以尝试为更多的功能行为编写测试。以下是一些测试场景的建议:
-
• 创建多个看板
-
• 删除看板
-
• 重命名看板
-
• 标星看板
-
• 在看板中创建多个列表
-
• 删除列表
-
• 重命名列表
-
• 删除卡片
-
• 重命名卡片
-
• 打开和关闭卡片
-
• 移动卡片以更改列表顺序
-
• 将卡片移动到不同的列表
-
• 更改卡片的数据
6、改进项目
我们的测试项目还有许多改进空间。以下是一些建议:
Trello
类似应用支持用户账户。你可以尝试创建一些用户,并更新测试以使用登录功能。可以参考Playwright
的身份验证指南获取灵感。
尝试使用不同的测试数据管理策略,例如运行多个应用实例或为每个并行工作者分配一个用户账户。 试试使用Screenplay Pattern
来替代Page Objects
。 更新GitHub Actions
工作流,以运行Trello
类似应用的测试。
7、继续学习
Test Automation University
提供了Playwright
的学习路径,帮助你进一步提高技能。 Playwright
有一个活跃的Discord
服务器,你可以加入这个社区,与其他用户交流。
通过这些进一步的练习和学习资源,你将能更深入地掌握Playwright
的测试自动化能力。继续探索,不断提升你的测试技能吧