量角器故障和基于数据驱动方法的浏览器处理

问题描述

我们正在开发数据驱动的量角器框架(茉莉花),在处理某些故障情况时我需要帮助。

我将使用不同的数据集迭代同一测试,我的Page模块将处理所有验证。

如果任何阻止失败,我想运行某些功能来清除cookie,捕获会话详细信息并重新启动浏览器(我确实具有所有功能

但是,

我不确定如何获取it块故障并触发特定功能,我还想确保触发下一个循环迭代。

browser.restart()-从来没有在之前或之后驱动过的数据中工作。

如果正在并行运行此数据(我们可以在并行浏览器中运行相同的测试,但不能将每个数据分发到多个浏览器中),有什么方法可以分发?

var dData = requireFile('testData/data.json');

using(dData,async function(data,description) {
   describe( scenario 1++,function() { 

         it('Load URL',async function() { })

         it('validate Page1',async function() { xxxxx })
         it('validate Page2',async function() { xxxxx })
         it('validate Page3',async function() { xxxxx })

   }) }

解决方法

如果我没事的话,您有3个问题。我只会回答第一个一般性问题-如何处理每个it块的结果

听起来,对于您要实现的目标,应该在茉莉花中使用custom reporter的优势

更准确地说,您想做的是:

  • 使用自定义报告程序创建模块
  • 在您的配置中注册。如果有任何要传递给报告者的参数,这是一个提前考虑的好地方
  • 有不同的钩子:茉莉花启动,套件启动(描述),规范启动(它),套件完成,茉莉花完成。不知道是否所有人,但可以肯定的是:spec-done。这个函数应该在每个it块之后被调用。它将以spec对象为参数。您可以自己进行探索,但是您需要的是status属性(spec.status)。它的值可以是'passed''failed',我相信其他人。所以你的逻辑就像
if (spec.status === 'passed') {
  // ...
} else if (spec.status === 'failed') {
  // ...
} else {
  // ...
}