如何解决量角器故障和基于数据驱动方法的浏览器处理
我们正在开发数据驱动的量角器框架(茉莉花),在处理某些故障情况时我需要帮助。
我将使用不同的数据集迭代同一测试,我的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 {
// ...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。