51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2151|回复: 0
打印 上一主题 下一主题

[转贴] web 自动化神器 TestCafe——用例运行篇

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-10-13 16:00:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    指定用例运行
      运行方法
      关于 TestCafe 运行用例,支持以下两种方法
      · 命令行运行
    1. // testcafe  运行的浏览器   用例文件路径
    2.   testcafe chrome ./tests/demo.js
    复制代码
    · 通过 Runner 运行
    1.  const TestCafe = require('testcafe');
    2.   const testCafe = await TestCafe('localhost', 1337, 1338);
    3.   try {
    4.       const Runner = testCafe.createRunner();
    5.       await Runner
    6.           .src('./tests/my-fixture.js')
    7.           .browsers('safari')
    8.           .run();
    9.   }
    10.   finally {
    11.       await testCafe.close();
    12.   }
    复制代码
    指定多个文件或目录运行
      如果是命令行运行,在指定运行路径的时候,写上多个路径即可。
      如果是通过 Runner 执行,在使用 src 指定运行路径是传入一个包含多个路径的数组即可。
    1.  await runner
    2.   .browsers('safari')
    3.   .src(['./goods-tests/demo1.js',
    4.   './user-tests/demo2.js'])
    5.   .run();
    复制代码
    运行指定的测试用例
      在指定测试文件运行的时候,TestCafe还支持指定测试用例名来执行测试。
      命令行运行是可以通过参数 -t 来指定运行的用例名,如果通过 Runenr 来执行,则可以通过 Runner.filter 方法的 testName 参数去进行过滤
      · 命令行运行
    1. // 通过运行demo.js文件中,用例名为login的用例
    2.   testcafe chrome ./tests/demo.js -t "login"
    复制代码
     · Runner 运行
    1.  await runner
    2.   .browsers('safari')
    3.   .src('./tests/demo.js')
    4.   .filter(testName => testName === 'login')
    5.   .run();
    复制代码
    运行指定的 fixtrue
      如果要运行文件中指定fixtrue,命令行运行是可以通过参数 -f 来指定运行的用例名,如果通过 Runenr 来执行,则可以通过 Runner.filter 方法的 fixtureName 参数去进行过滤。
      · 命令行运行
    1. testcafe firefox ./tests/demo.js -f "Loginfixture"
    复制代码
    · Runner 对象运行
    1.  await runner
    2.   .browsers('firefox')
    3.   .src('./tests/demo.js')
    4.   .filter((testName, fixtureName) => {
    5.   fixtureName === 'Loginfixture'
    6.   })
    7.   .run();
    复制代码
     浏览器运行的配置
      testcafe 在运行测试是需要手动去指定运行的浏览器,命令行运行时,直接把浏览器名字添加在 testcafe 后面即可,通过 Runner 对象运行则可以通过 browsers 来指定运行的浏览器。
      同时多个浏览器运行
      在运行测试的时候,TestCafe支持使用多个浏览器同时。
      · 在命令行中多个浏览器中运行测试。以逗号分隔的浏览器列表
    1.  testcafe safari,chrome ./tests/
    复制代码
    通过 Runner 运行,将浏览器标识符数组传递给 Runner.browsers
    1. await runner
    2.       .browsers(['safari', 'chrome'])
    3.       .src('./tests/')
    4.       .run();
    复制代码
     · 使用电脑上所有安装的浏览器一起运行测试
      指定浏览器时使用 all ,testcafe 会自动检查所有本地安装的浏览器,同时运行测试。
    1.  testcafe all ./tests/
    2.   await runner
    3.       .browsers('all')
    4.       .src('./tests/')
    5.       .run();
    复制代码
     无头模式运行
      TestCafe 可以在支持它的浏览器中以无头模式运行测试。要以无头模式运行测试,请将 :headless 后缀放在浏览器名称即可。
      · 命令行运行
    1.  testcafe firefox:headless ./tests/
    复制代码
    · Runner 运行
    1.  await runner
    2.       .browsers('firefox:headless')
    3.       .src('./tests/')
    4.       .run();
    复制代码
     模拟移动设备运行
      TestCafe 支持使用 Chrome 浏览器移动设备来模拟移动设备布局和功能。指定 :emulation 后缀,后跟仿真选项。
    1. await runner
    2.       .browsers('chrome:emulation:device=iphone X')
    3.       .src('./tests/sample-fixture.js')
    4.       .run();
    复制代码
    测试报告
      关于测试报告的生成,TestCafe 自带了五种基本的报告器,分别为 spec、list、minimal?、JSON、xUnit。同时也支持自己安装其他的报告程序插件,也可以自定义报告器。
      指定报告器
      关于测试测试报告的生成,在命令行中使用 -r 参数,并在 API 中使用 Runner.reporter 方法来指定要使用的报告器。
      · 命令行运行
    1.  testcafe all ./tests/sample-fixture.js -r xunit
    复制代码
    Runner 运行
    1.  await runner
    2.       .browsers('all')
    3.       .src('./tests/sample-fixture.js')
    4.       .reporter('xunit')
    5.       .run();
    复制代码
    注意点:如果要指定输入报告文件名, 在命令行中在分号后或在 Runner.reporter 中将其指定为第二个参数即可。
      并发运行
      TestCafe 支持并发执行测试。
      在并发执行的模式下,TestCafe 为浏览器创建多个实例对象,这些浏览器的实例构成一个运行测试的浏览器池,每个测试都会获取浏览器池中的一个可用实例。
      关于并发执行模式的开启, 使用 -c 命令行选项或 Runner.concurrency 方法。
      注意点:执行测试时,Edge 浏览器不支持并发测试执行
      · 命令行开启并发执行
    1. testcafe -c 3 chrome tests/test.js
    复制代码
    · 通过 Runner.concurrency
    1. var testRunPromise = runner
    2.       .src('tests/test.js')
    3.       .browsers('chrome')
    4.       .concurrency(3)
    5.       .run();
    复制代码
    实时模式运行
      实时模式可以在进行测试时 TestCafe 和浏览器保持活动状态。
      在启用实时模式的情况下运行测试时,TestCafe 将打开浏览器,运行测试,显示报告,并等待进一步的操作。
      然后 TestCafe 开始监视测试文件及其中引用的所有文件中的更改。在任何这些文件中进行更改并保存后,TestCafe 会立即重新运行测试。
      实时模式的开启
      · 通过命令行启动
    1. testcafe chrome tests/test.js -L
    复制代码
    · 通过 Runner 运行 ,使用 testcafe.createLiveModeRunner 创建一个运行器,代替的常规测试运行。
    1. const createTestCafe = require('testcafe');
    2.   const testcafe = await createTestCafe('localhost', 1337, 1338);
    3.   try {
    4.   const liveRunner = testcafe.createLiveModeRunner();
    5.   await liveRunner
    6.   .src('tests/test.js')
    7.   .browsers('chrome')
    8.   .run();
    9.   }
    10.   finally {
    11.   await testcafe.close();
    12.   }
    复制代码
     实时模式下的控制台快捷方式
      Ctrl+S ——停止当前的测试运行;
      Ctrl+R ——重新开始当前的测试运行;
      Ctrl+W ——关闭/打开文件观察器;
      Ctrl+C ——关闭打开的浏览器并终止该过程。
      隔离模式运行
      隔离模式旨在将非确定性测试(即,在没有任何明显原因的情况下通过和失败的测试)与其他测试隔离开来。
      启用隔离模式后,将根据以下逻辑运行测试:
      1、首次运行测试。如果通过,则 TestCafe 继续进行下一个测试。
      2、如果测试失败,它将再次运行,直到通过或失败三次。
      3、如果多次运行结果不一样,以最频繁的结果记录为测试结果。
      4、如果两次测试之间的测试结果不同,则将测试标记为不稳定。
      · 命令行开启隔离模式,使用参数 -q
    1. testcafe chrome ./tests/ -q
    复制代码
    · Runner.run 方法中的 quarantineMode 选项启用隔离模式
    1. await runner
    2.       .browsers('chrome')
    3.       .src('./tests/')
    4.       .run({ quarantineMode: true });
    复制代码













    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 10:08 , Processed in 0.061091 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表