云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库_阿里云免费建站_便宜的

小七 141 0

这是关于使用testcafe进行自动化测试(端到端和集成测试)的博客系列的第5部分。博客系列包括以下几个部分:

在第5部分中,我们将把现有的设置集成到CI工具中,大数据专业怎么样,并讨论e2e测试中的身份验证。

这一步通常被低估,但非常重要。单独编写测试是没有帮助的——只有在日常工作中自动执行和处理失败的测试才能真正带来好处。不幸的是,这一挑战没有"唯一"的解决方案,由于解决方案主要取决于您已经实施的内容以及您在项目/公司内部拥有的CI选项。

因此,在本博客中,我将描述E2E和集成测试CI集成的两种最常见的场景:

而博客只处理这两种集成解决方案,企业管理软件下载,实现方法总是相同的,并且可以适用于任何其他CI提供商(BitBucket、CircleCI、Travis等)

因为本博客中显示的完整源代码始终可以在GitHub中获得。

引用官方文档:"自动化、自定义,并使用GitHub操作在存储库中执行软件开发工作流。您可以发现、创建和共享操作以执行任何您想要的工作,包括CI/CD,并将操作组合到完全定制的工作流中。"

这对我们意味着什么?

您的代码(前端或至少E2E)必须在GitHub存储库中才能使用GitHub操作您的GitHub实例(尤其是私人公司实例)必须允许/启用GitHub操作的使用。

我们的目标是:

在每次提交时执行集成/E2E测试。如果有任何失败,提交应该被标记为失败。应阻止拉取请求。

Github操作是使用存储库根文件夹".Github/workflows"中的工作流YAML文件实现的。首先创建一个新文件"testcafe"-工作流.yml"在这里,

让我们从这个文件的第一行开始:

名称:测试如何在github中进行的名称开启:导致工作流启动的触发器列表。我们只需在push上运行测试。如果将测试代码集成到前端存储库中,那么每次提交和推送都会触发测试。作业:将在工作流中触发的作业测试:我们的工作名称姓名:工作描述运行于:指定要在其上运行作业的操作系统。我们在这里使用ubuntu。

通过这个规范,我们定义了我们工作流程的基础。现在我们必须具体说明要采取的步骤。Testcafe实现了一个自己的github操作工作流,不幸的是,它与ui5增强并不真正兼容。因此,我们将采用一个简单的npm运行程序,它正在执行中定义的npm脚本包.json.

在CI环境中运行测试时,通常建议使用无头浏览器。无头浏览器基本上是一个普通的web浏览器,但是没有任何用户界面,允许它在服务器上的shell中运行,而没有任何图形界面。幸运的是,很长一段时间以来,最重要的浏览器(firefox,基于chromium的浏览器)都集成了无头模式。服务器上testcafe的启动脚本如下所示:

正如您所注意到的,唯一的区别是我们不是直接启动chrome,而是"镀铬:无头",它(当然)在无头模式下启动chrome。

这个脚本现在应该由github操作工作流执行。为了实现这一点,我们定义了以下步骤:

这已经完成了GitHub集成。您可以在下面的GIF中看到Github操作:

请记住,这当然只是Github操作的可能性。根据您的开发工作流程,我至少会实现一个好的自动化方法来通知您推送失败的消息。想法:

您正在使用拉请求:防止拉请求合并,以防测试失败您正在使用GitHub处理问题:自动创建问题您正在使用Mattermost/Teams/Slack:自动与提交者聊天(Mattermost,Teams,Slack)

Juse假设对于任何你能想到的用例,已经有了一个GitHub操作-所以不要在这里重新发明轮子

再次引用Jenkins主页:Jenkins是一个开源的自动化服务器,大数据数据处理,它使世界各地的开发人员能够可靠地构建、测试,部署他们的软件。

这对我们意味着什么?

您应该准备好jenkins(或任何其他类似的CI解决方案)Jenkins应该连接到您的源代码存储库(GitLab、GitHub、BitBucket,[…]),以便能够通过WebHooks对代码更改做出反应

在这种情况下,我们将只实现基于多分支管道作业的Jenkins作业。作为一个完整的教程詹金斯将太多的范围内,这个博客,我将只解释所使用的詹金斯文件的内容。当然,您可以在任何自由式或基于脚本的管道作业中重新使用此内容。

首先,我们必须安装一些插件(与jenkins一起工作时始终如此):

NodeJs。安装后,请在全局工具配置中配置一个名为"NodeJs"、版本为11的NodeJs安装。凭据绑定:如果您有任何凭据/用户名/密码AnsiColor:将testcafe日志的输出着色Testcafe-Jenkins插件:Testcafe的官方插件。还有一个更详细的博客描述了jenkins与testcafe的集成。