建立您的第一个赛普拉斯测试

大家好!

我叫罗曼·莫斯塔芬。我是四叶草的自动化测试人员,通常使用pytest +硒编写自动测试程序。最近,我们的前端开发团队开始使用赛普拉斯在Smart Locomotive项目上编写UI测试,以自动化回归测试。我自愿帮助他们,并被这项技术所深深吸引。在本文中,我将讨论赛普拉斯,以及如何在其上创建我的第一个测试。


赛普拉斯是一个相对较新的框架,用于编写Javascript测试。他部署了浏览器,并将测试注入到页面代码中。

赛普拉斯具有以下优点:

  • 支持编写模块化,集成和端到端测试,
  • 有好的文件
  • 具有友好,直观的界面,可用于启动,查看和调试,
  • 有有用的实用程序来简化测试编写。

结果,我们有了一个通用且方便的框架来编写各种类型的测试。

理论


要编写测试,需要六个基本功能。考虑它们以及一些参数,这些都是示例。

1. cy.visit()


此方法用于转到应用程序页面。作为参数,它带有一个带有应用程序页面地址的字符串:

cy.visit(‘http://test.app.com’);

2. cy.get()


此方法用于从网页的DOM模型中获取元素。它采用以下参数:

  • 元素定位器-可以找到该元素的地址;
  • 超时-赛普拉斯在页面上查找元素的时间(默认为4秒)。

cy.get(‘div[class=”topbar”]’, {timeout: 3000})

3. .type()


.type方法用于填写文本表单和各个字段。它具有以下参数:

  • 要输入的文本是字符串表示形式的文本。此外,文本可能表示用大括号突出显示的键盘命令;
  • 超时-执行type命令之前的延迟。

cy.get(‘input’).type(‘Hello world’, {timeout: 3000})

4. cy.wait()


此方法用于暂时停止命令的执行。它还可以用于等待HTTP请求完成。它具有参数timeout-直接是超时。

cy.wait(3000)

5. cy.fixture()


此方法用于获取测试数据。接受json文件的名称作为输入。

6. cy.should()


检查表达式的方法。它接受以下参数:

  • 比较命令是检查元素的条件;
  • 预期结果-检查的预期结果。

实践


让我们以Yandex授权表单为例,我们将使用不存在的登录名来验证授权,并使用不存在的密码来验证授权。为此,请进行初步准备:

1.为新项目创建一个文件夹。

2.转到项目文件夹并执行命令以安装Cypress:

npm install cypress --save-dev


3.运行cypress命令:

npx cypress open

4.启动之后,确保以下层次结构出现在项目目录中:



现在,您需要创建一个夹具。我们需要它以便将测试数据与测试本身分开。

1.在文件夹“夹具”中创建具有以下内容的文件“ cypressTest.json”:



2.接下来,在文件夹“集成中”创建一个名为“ habr_cypress_test.spec.js的文件”:



3.使用函数“对整个测试用例进行描述”描述':



4.在函数内部'描述'我们将创建测试。我们将编写第一个
测试的标题



5.下一步是编写来自夹具的数据调用:



最后,我们使用Cypress函数的知识来创建测试本身。



以此类推,我们创建第二个测试。



我们转到赛普拉斯应用程序,找到测试并单击其名称,



然后,打开运行赛普拉斯的浏览器页面,然后开始测试:在左侧的单独列中,您可以看到该过程的详细步骤。您需要等待测试完成。



恭喜,您编写了第一个赛普拉斯测试!

PS:

我要感谢我们的前端团队,特别是Adele Khamatova,他们在学习赛普拉斯项目方面的帮助。

All Articles