当前位置:首页 > 文章列表 > 文章 > 前端 > 如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

来源:dev.to 2024-08-07 14:12:57 0浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习文章相关编程知识。下面本篇文章就来带大家聊聊《如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

我一直在为我们的婚礼和一个用于在旅行时翻译食物的食物翻译网站工作一些网站。我发现的有趣的事情之一是如何测试这些网站,并确保一切正常。

什么是测试驱动开发(tdd)?

我发现(或者更确切地说,被告知)的两个工具称为 sirv 和 playwright,可以帮助您运行网站并测试网站的某些部分。一旦完成一些测试并弄清楚如何让事情变得更好,您就可以根据这些测试进行更新和更改。这称为测试驱动开发,其中测试揭示了应用程序中的差距,并且您根据测试进行更改。

通常这些差距以测试失败的形式出现。例如,如果您的网站上有一个表单,但在根据饮食要求输入标点符号时失败,那么您可以更改表单输入以允许使用标点符号。这使您的应用程序更适合您的用户,并且您现在拥有基于您运行的原始测试的新功能。

那么如何为应用程序编写测试呢?

什么是 sirv 和剧作家?

sirv 是一个静态站点服务器。它是用于处理静态资产请求的优化中间件。因此,如果您有静态站点,sirv 效果最佳。

playwright 另一方面是一种针对 web 应用程序的测试方法。将它们一起使用意味着 playwright 是我们将用来编写和运行测试的工具。 sirv 是我们可以看到应用程序运行的界面,并查看哪些测试通过或失败。

编写测试

要测试您的代码,您需要编写测试。在此示例中,我正在编写一个测试来查看网页上是否有某个单词或标题。我使用 github copilot 帮助编写一个测试来执行此操作。 playwright 文档为我提供了编写测试的正确起点。

为了使用 playwright 进行测试写作,您需要导入它。这是编写测试的起点:

从'@playwright/test'导入{测试,期望};

我为我们的婚礼建立了一个网站,我想测试一下页面上是否检测到标题“mish 和 max”。这是我用来测试这个的代码:

test('Contact Mish and Max', async ({ page }) => {
    // Navigate to the page
    await page.goto('http://localhost:8080/contact.html');

    // Assert that the title says "Contact Mish and Max"
    await expect(page).toHaveTitle("Contact Mish and Max")
});

您将向项目添加一个扩展名为 .spec.test 的新文件。确保保存它,并在每次进行更改时保存它。现在我们已经编写了测试,让我们运行它。

使用 sirv 和 playwright 进行测试

首先,您需要 node 才能使其工作。按照 node.js 文档中的指南安装适用于 windows、maco 或 linux 的 node。

准备好测试代码时,在 vs code 或您选择的编辑器中打开终端。我使用的是 vs code,因此这里的演示使用 vs code。通过从菜单栏中选择“查看 > 终端”或按 ctrl + ` 键盘快捷键来打开终端。

一旦有了终端,您需要运行一些命令:

npm install @playwright/test - 这通过安装测试库来设置 playwright 测试。

npx playwright install - 这会下载 chrome、firefox、safari 等的测试版本。

npx sirv-cli 。 - 这会运行本地版本的 sirv 进行测试。

现在您已经完成了 sirv 和 playwright 设置并准备就绪,我们可以运行测试了。在 vs code(或您选择的编辑器)中打开一个新终端,然后运行以下命令:

npx playwright test --ui 这将运行测试并打开一个新窗口,我们可以在其中运行并查看正在运行的测试。

这是上面运行的所有命令:

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

playwright终端测试窗口:

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

阅读并修复测试

我们可以在上面的测试中看到它运行失败。当我们研究为什么会发生这种情况时,我们就可以确定如何解决它。通过查看“错误”选项卡,我们可以看到发生了什么错误:

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

在这种情况下,它说:

预期字符串:“contact mish 和 max”
收到字符串:“联系方式”

换句话说,它本来希望收到“contact mish and max”,但它却显示“contact”。如果我看一下我的 *.html 文件,我们可以看到我有两个 标签:</p> <p><img src="/uploads/20240807/172301116266b3105a35259.jpg" alt="如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)"></p> <p>hmtl 仅读取第一个标题标签,即使还有其他标题标签。我们可以通过将第一个标题标签更改为 <title>contact mish 和 max 来快速修复此错误。现在我们可以再次运行测试:

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

这次,我们看到了✔️并且测试通过了?.

编写测试和编写代码

现在您知道如何使用 sirv 和 playwright 编写和运行测试,您可以继续编写更复杂的测试。例如,在上面的同一个联系表单上,我使用 github copilot 的帮助编写了一个测试,以检查是否可以填写并提交联系表单:

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

我可以运行此测试,并逐步完成测试的每个部分,在 ui 中查看网站上进行的更改:

如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)

亲自尝试一下,让我知道您正在编写哪些测试,以及本指南是否有帮助。

理论要掌握,实操不能落!以上关于《如何测试网站:使用 SIRV 和 Playwright 进行测试驱动开发 (TDD)》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
优化PHP框架性能,加速网站响应优化PHP框架性能,加速网站响应
上一篇
优化PHP框架性能,加速网站响应
PHP框架性能优化:专家问答
下一篇
PHP框架性能优化:专家问答
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    509次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • AI边界平台:智能对话、写作、画图,一站式解决方案
    边界AI平台
    探索AI边界平台,领先的智能AI对话、写作与画图生成工具。高效便捷,满足多样化需求。立即体验!
    19次使用
  • 讯飞AI大学堂免费AI认证证书:大模型工程师认证,提升您的职场竞争力
    免费AI认证证书
    科大讯飞AI大学堂推出免费大模型工程师认证,助力您掌握AI技能,提升职场竞争力。体系化学习,实战项目,权威认证,助您成为企业级大模型应用人才。
    45次使用
  • 茅茅虫AIGC检测:精准识别AI生成内容,保障学术诚信
    茅茅虫AIGC检测
    茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
    168次使用
  • 赛林匹克平台:科技赛事聚合,赋能AI、算力、量子计算创新
    赛林匹克平台(Challympics)
    探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
    246次使用
  • SEO  笔格AIPPT:AI智能PPT制作,免费生成,高效演示
    笔格AIPPT
    SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
    188次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码