超详细的 web 自动化教程 (六)TestCafe 用例运行篇

本贴最后更新于 1295 天前,其中的信息可能已经时移俗易

上一篇我们讲到TestCafe如何进行页面交互,这一篇我们一起来了解一下如何运行测试用例。以及运行测试时的相关配置项。

一、指定用例运行

1、运行方法

关于TestCafe运行用例,支持以下两种方法

2、指定多个文件或目录运行

如果是命令行运行,在指定运行路径的时候,写上多个路径即可。

如果是通过Runner执行,在使用src指定运行路径是传入一个包含多个路径的数组即可。

await runner
    .browsers('safari')
    .src(['./goods-tests/demo1.js', 
          './user-tests/demo2.js'])
    .run();

3、运行指定的测试用例

在指定测试文件运行的时候,TestCafe还支持指定测试用例名来执行测试。命令行运行是 可以通过参数

-t来指定运行的用例名,如果通过Runenr来执行,则可以通过 Runner.filter方法的testName参数去进行过滤

// 通过运行demo.js文件中,用例名为login的用例
testcafe chrome ./tests/demo.js -t "login"

4、运行指定的fixtrue

如果要运行文件中指定fixtrue,命令行运行是 可以通过参数

-f 来指定运行的用例名,如果通过Runenr来执行,则可以通过 Runner.filter方法的 fixtureName参数去进行过滤。

二、浏览器运行的配置

testcafe在运行测试是需要手动去指定运行的浏览器,命令行运行时,直接把浏览器名字添加在testcafe后面即可,通过Runner对象运行则可以通过 browsers 来指定运行的浏览器。

1、同时多个浏览器运行

在运行测试的时候,TestCafe支持使用多个浏览器同时。

2、无头模式运行

TestCafe可以在支持它的浏览器中以无头模式运行测试。要以无头模式运行测试,请将:headless后缀放在浏览器名称即可。

testcafe firefox:headless ./tests/
await runner
    .browsers('firefox:headless')
    .src('./tests/')
    .run();

3、模拟移动设备运行

TestCafe支持使用Chrome浏览器移动设备来模拟移动设备布局和功能。指定:emulation后缀,后跟仿真选项

await runner
    .browsers('chrome:emulation:device=iphone X')
    .src('./tests/sample-fixture.js')
    .run();

三、测试报告

关于测试报告的生成,TestCafe自带了五种基本的报告器,分别为 spec、list、minimal,JSON、xUnit。同时也支持自己安装其他的报告程序插件,也可以自定义报告器。

1、指定报告器

关于测试测试报告的生成,在命令行中使用-r参数,并在API中使用Runner.reporter方法来指定要使用的报告器。

注意点:如果要指定输入报告文件名, 在命令行中在分号后或在Runner.reporter中将其指定为第二个参数即可。

四、并发运行

TestCafe支持并发执行测试。在并发执行的模式下,TestCafe为浏览器创建多个实例对象,这些浏览器的实例构成一个运行测试的浏览器池,每个测试都会获取浏览器池中的一个可用实例。关于并发执行模式的开启, 使用-c命令行选项或Runner.concurrency方法。

注意点: 执行测试时,Edge浏览器不支持并发测试执行
1、命令行开启并发执行
testcafe -c 3 chrome tests/test.js
2、通过Runner.concurrency
var testRunPromise = runner
    .src('tests/test.js')
    .browsers('chrome')
    .concurrency(3)
    .run();

五、实时模式运行

实时模式可以在进行测试时TestCafe和浏览器保持活动状态。在启用实时模式的情况下运行测试时,TestCafe将打开浏览器,运行测试,显示报告,并等待进一步的操作。然后TestCafe开始监视测试文件及其中引用的所有文件中的更改。在任何这些文件中进行更改并保存后,TestCafe会立即重新运行测试。

1、实时模式的开启

2、实时模式下的控制台快捷方式

六、隔离模式运行

隔离模式旨在将非确定性测试(即,在没有任何明显原因的情况下通过和失败的测试)与其他测试隔离开来。

启用隔离模式后,将根据以下逻辑运行测试:

  1. 首次运行测试。如果通过,则TestCafe继续进行下一个测试。
  2. 如果测试失败,它将再次运行,直到通过或失败三次。
  3. 如果多次运行结果不一样,以最频繁的结果记录为测试结果。
  4. 如果两次测试之间的测试结果不同,则将测试标记为不稳定。

关于TestCafe测试用例运行就给大家分享到这里,后续会持续更新TestCafe系列的教程。

回帖
请输入回帖内容 ...