乐趣区

关于软件测试:web-自动化神器-TestCafe六-用例运行篇

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

一、指定用例运行
1、运行办法
对于 TestCafe 运行用例,反对以下两种办法
命令行运行
// testcafe 运行的浏览器 用例文件门路
testcafe chrome ./tests/demo.js
通过 Runner 运行
const TestCafe = require(‘testcafe’);
const testCafe = await TestCafe(‘localhost’, 1337, 1338);
try {

const Runner = testCafe.createRunner();
await Runner
    .src('./tests/my-fixture.js')
    .browsers('safari')
    .run();

}
finally {

await testCafe.close();

}
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”
Runner 运行
await runner

.browsers('safari')
.src('./tests/demo.js')
.filter(testName => testName === 'login')
.run();

4、运行指定的 fixtrue
如果要运行文件中指定 fixtrue,命令行运行是 能够通过参数
-f 来指定运行的用例名,如果通过 Runenr 来执行,则能够通过 Runner.filter 办法的 fixtureName 参数去进行过滤。
命令行运行
testcafe firefox ./tests/demo.js -f “Loginfixture”
Runner 对象运行
await runner

.browsers('firefox')
.src('./tests/demo.js')
.filter((testName, fixtureName) => {fixtureName === 'Loginfixture'})
.run();

二、浏览器运行的配置
testcafe 在运行测试是须要手动去指定运行的浏览器,命令行运行时,间接把浏览器名字增加在 testcafe 前面即可,通过 Runner 对象运行则能够通过 browsers 来指定运行的浏览器。
1、同时多个浏览器运行
在运行测试的时候,TestCafe 反对应用多个浏览器同时。
在命令行中多个浏览器中运行测试。以逗号分隔的浏览器列表
testcafe safari,chrome ./tests/
通过 Runner 运行,将浏览器标识符数组传递给 Runner.browsers
await runner

.browsers(['safari', 'chrome'])
.src('./tests/')
.run();

应用电脑上所有装置的浏览器一起运行测试 指定浏览器时应用 all,testcafe 会主动查看所有本地装置的浏览器,同时运行测试。
testcafe all ./tests/
await runner

.browsers('all')
.src('./tests/')
.run();

2、无头模式运行
TestCafe 能够在反对它的浏览器中以无头模式运行测试。要以无头模式运行测试,请将 :headless 后缀放在浏览器名称即可。
命令行运行
testcafe firefox:headless ./tests/
Runner 运行
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 办法来指定要应用的报告器。
命令行运行
testcafe all ./tests/sample-fixture.js -r xunit
Runner 运行
await runner

.browsers('all')
.src('./tests/sample-fixture.js')
.reporter('xunit')
.run();

留神点:如果要指定输出报告文件名,在命令行中在分号后或在 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、实时模式的开启
通过命令行启动
testcafe chrome tests/test.js -L
通过 Runner 运行,应用 testcafe.createLiveModeRunner 创立一个运行器,代替的惯例测试运行。
const createTestCafe = require(‘testcafe’);
const testcafe = await createTestCafe(‘localhost’, 1337, 1338);

try {

const liveRunner = testcafe.createLiveModeRunner();
await liveRunner
    .src('tests/test.js')
    .browsers('chrome')
    .run();

}
finally {

await testcafe.close();

}
2、实时模式下的控制台快捷方式
Ctrl+S - 进行以后的测试运行;
Ctrl+R - 从新开始以后的测试运行;
Ctrl+W - 敞开 / 关上文件观察器;
Ctrl+C - 敞开关上的浏览器并终止该过程。
六、隔离模式运行
隔离模式旨在将非确定性测试(即,在没有任何显著起因的状况下通过和失败的测试)与其余测试隔离开来。
启用隔离模式后,将依据以下逻辑运行测试:
首次运行测试。如果通过,则 TestCafe 持续进行下一个测试。
如果测试失败,它将再次运行,直到通过或失败三次。
如果屡次运行后果不一样,以最频繁的后果记录为测试后果。
如果两次测试之间的测试后果不同,则将测试标记为不稳固。
命令行开启隔离模式,应用参数 -q
testcafe chrome ./tests/ -q
Runner.run 办法中的 quarantineMode 选项启用隔离模式
await runner

.browsers('chrome')
.src('./tests/')
.run({quarantineMode: true});

对于 TestCafe 测试用例运行就给大家分享到这里,后续会继续更新 TestCafe 系列的教程。
是不是很简略呢,上面是我整顿的一些软件测试材料,有须要的敌人能够点击上面链接自行获取哟
软件测试学习材料

退出移动版