使用 Mocha 选项执行测试


规格文件夹中的测试文件由描述和它块组成。描述块指的是测试套件,it 块指的是测试用例。一个描述块可以有多个块。

有关如何创建描述和它块的详细信息将在标题为 Webdriverio 的快乐路径流的章节中详细讨论。

为了验证从开发团队获得的新版本是否健康,我们不需要执行套件中的所有测试用例。确定了一些用于烟雾/健全性测试的测试用例,一旦我们有了新的构建,它们就会被执行。

我们可以使用名为 Grep 的 Mocha 选项对测试用例进行分组并一起运行它们。为此,我们必须在其描述中添加一个关键字,例如 Smoke。然后在运行时,我们可以指示 WebdriverIO 测试仅触发其描述中包含 Smoke 的 it 块。

让我们看一个有四个 it 块的测试文件。在四个 it 块中,有两个 it 块的描述中包含关键字 Smoke。

首先,按照标题为“使用 WebdriverIO 的快乐路径流”一章中的步骤 1 到 5 进行操作,如下所示 -

步骤 1 - 安装 NodeJS。有关如何执行此安装的详细信息,请参阅标题为 NodeJS 入门的章节。

步骤 2 - 安装 NPM。有关如何执行此安装的详细信息,请参阅标题为“NPM 安装”的章节。

步骤 3 - 安装 VS Code。有关如何执行此安装的详细信息,请参阅标题为 VS Code 安装的章节。

步骤 4 - 创建配置文件。有关如何执行此安装的详细信息,请参阅标题为“配置文件生成”的章节。

步骤 5 - 创建规格文件。有关如何执行此安装的详细信息,请参阅标题为“Mocha 安装”的章节。

步骤 6 - 在创建的 Mocha 规范文件中添加以下代码。

//import chai library
const c = require('chai').expect
//library for parsing JSON file
const s =require('fs')
let h = JSON.parse(s.readFileSync('test/testData/test1.json'))
// test suite name
describe('Tutorialspoint application', function(){
   //iterate the test case
   h.forEach(  ({email,password})  =>{
      //test case
      it('Data Driven testing', function(){   
         // launch url
         browser.url('https://www.linkedin.com/login')  
         //identify the email field then enter key - email
         $("#username").setValue(email)
         //identify password field then enter key - password
         $("#password").setValue(password)
         //identify SSign in button then click
         $("button[type='submit']").click() 
         //verify error message
         const e = $('#error-for-password')
         console.log(e.getText() + ' - Error Text') 
         //verify Alert text with Chai assertion
         c(e.getText()).to.equal("The password must be provided.")
      });
   });
   // it is blocked with Smoke keyword
   it('Identify element with Id - Smoke', function(){
      // launch url
      browser.url('https://the-internet.herokuapp.com/redirector')
      //identify element with id then click
      $("#redirect").click()
      //obtain page title
      console.log('Page title after click: ' + browser.getTitle())
   });
   // it block with Smoke keyword
   it('Identify element with Tagname - Smoke', function(){    
      // launch url
      browser.url('https://www.tutorialspoint.com/about/about_careers.htm')
      //identify element with tagname then obtain text
      console.log($("<h1>").getText() + " - is the text.")
   });
   //test case
   it('Identify element with Class Name', function(){        
      // launch url
      browser.url('https://www.tutorialspoint.com/about/about_careers.htm')
      //identify element with Class Name then obtain text
      console.log($(".heading").getText() + " - is the text.")
   });
});

要仅触发与 Smoke 连接的 it 块,请使用以下命令运行配置文件 - wdio.conf.js 文件 -

npx wdio run wdio.conf.js --mochaOpts.grep Smoke

有关如何创建配置文件的详细信息将在标题为 Wdio.conf.js 文件的章节和标题为配置文件生成的章节中详细讨论。

您的计算机上将出现以下屏幕 -

执行测试 Mocha 选项

命令执行成功后,我们发现4个it块中,只有2个it块(描述中有Smoke标签)被执行了。