Hello Playwright:自动化测试

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hello Playwright:自动化测试相关的知识,希望对你有一定的参考价值。

利用 Playwright 提供的 API,我们在浏览器上做的很多事情都可以自动化。例如,搜索数据、填写表单和下载文件等等。

但最适合的工作,就是自动化测试 Web 应用程序。

自动化测试

测试是软件开发中的一项基本任务,至少,你需要运行应用程序以查看它是否按预期工作。

但是要真正测试一个功能是否正常,需要要覆盖尽可能多的场景。例如,填写一个表单,你就必须要验证如下常见的场景:

  • 完全正确的数据

  • 错误的数据类型,比如数字框输入了字母

  • 错误的数据范围,比如年龄输入了1000

  • 必填字段为空

虽然可以用纯手工进行测试。但是有经验的开发人员会基于这些场景编写测试代码,并且可以自动化运行这些测试代码,保证不会遗漏任何场景或必须重复执行相同的测试。

而测试 Web 应用程序需要使用浏览器,这正给了 Playwright 以用武之地。

测试框架

虽然 Playwright for .NET 不依赖于特定的测试运行程序或测试框架就可运行,但是利用测试框架可以帮助我们更好地编写自动化测试。

.NET 下的测试框架有很多。但是官方推荐使用 NUnit 作为测试框架。你也可以尝试使用其他你熟悉的测试框架。

Demo

下面我们将将使用站点 https://www.baidu.com 作为测试用例,测试页面标题是否为“百度一下,你就知道”。

在命令行窗口,使用 dotnet CLI 创建一个 NUnit 测试项目,并添加 Playwright 依赖:

dotnet new nunit -n HelloPlaywright_04
cd HelloPlaywright_04
 
dotnet add package Microsoft.Playwright.NUnit

修改 UnitTest1.cs 代码如下:

using Microsoft.Playwright.NUnit;
using NUnit.Framework;
using System.Threading.Tasks;

namespace HelloPlaywright_04

    public class Tests : PageTest
    
        [Test]
        public async Task Title_IsCorrect()
        
            var result = await Page.TitleAsync();
            Assert.AreEqual("百度一下,你就知道", result);
        
    

运行测试,失败

但是这是对的,因为我们还没有初始化环境:

namespace HelloPlaywright_04

    public class Tests : PageTest
    
        [SetUp]
        public async Task SetUp()
        
            await Page.GotoAsync("https://www.baidu.com");
        

        ...
    

运行测试,成功

结论

Microsoft.Playwright.NUnit 提供了多个基类用于创建不同级别下的测试:

类名说明
PageTest每个测试都会获得在其自己独有的 BrowserContext 中创建的网页的新副本。扩展此类是编写全功能 Playwright 测试的最简单方法。
ContextTest每个测试都会得到一个 BrowserContext 的新副本。你可以根据需要在此上下文中创建任意数量的页面。使用此测试是测试需要多个选项卡的多页场景的最简单方法。
BrowserTest每个测试都将获得一个浏览器,并且可以创建任意数量的上下文。每个测试负责清理它创建的所有上下文。
PlaywrightTest为每个测试提供了一个 Playwright 对象,以便测试可以启动和停止任意数量的浏览器。

添加微信号【MyIO666】,邀你加入技术交流群

以上是关于Hello Playwright:自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

playwright录制脚本

Hello Playwright:与元素交互

微软开源的Web测试和自动化神器 Playwright

python:初识自动化测试 playwright 库

微软开源的Web测试和自动化神器 Playwright

Playwright快速上手指南