Web自动化神器TestCafe六)——用例运行篇
上一篇我们讲到TestCafe如何进行页面交互,这一篇我们一起来了解一下,
一、指定用例运行
1、运行方法
关于TestCafe运行用例,支持以下两种方法
-
1、命令行运行
// testcafe 运行的浏览器 用例文件路径 testcafe chrome ./tests/demo.js
-
2、通过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附带了五种基本的报告器,包括用于规范,JSON和xUnit格式的报告器。你可以安装其他的报告程序插件,也可以创建自定义报告程序。关于测试测试报告的生成,在命令行中使用-r
参数,并在API中使用Runner.reporter
方法来指定要使用的报告器。
1、指定报告器
-
命令行运行
testcafe all ./tests/sample-fixture.js -r xunit
-
Runner运行
await runner .browsers('all') .src('./tests/sample-fixture.js') .reporter('xunit') .run();