邮递员:是否有可能根据先决条件中检测到的条件阻止邮递员被执行?

时间:2017-06-22 06:29:28

标签: postman

我在第一次调用中使用预请求脚本来动态生成整个脚本的基本环境变量。我还希望用户在通过集合运行器运行时收到通知,而无需查看控制台。是否有可能在测试或其他替代方案中生成信息,因此故障在集合运行结果中是明确的?

e.g。如果在环境中没有提供ip,则运行登录调用没有意义。所以我想写一个先决条件:

(defmacro functioner (var val)
  `(if (and (symbolp ',val)
            (fboundp ',val))
       (setf (symbol-function ',var) #',val)
       (setf ,var ,val)))


(defun match-if (pattern input bindings)
  (eval `(and (let ,(mapcar #'(lambda (x) (list (car x))) bindings)
                (declare (special ,@ (mapcar #'car bindings)))
                (loop for i in ',bindings
                      do (eval `(functioner ,(first i) ,(rest i))))
                (eval (second (first ',pattern))))
              (pat-match (rest ',pattern) ',input ',bindings))))

我尝试使用:

if (!environment['IP']) {
    //do not execute any further and do not send the REST call
}

但它给出了错误:

if (!environment["xyz"]) {
    tests["condtion1"]=false
}

是否有任何解决方法 - 我不想将此代码移到测试标签中,因为我不想在不相关的环境条件下混淆代码。

2 个答案:

答案 0 :(得分:6)

投掷效果很好。 (更新了@Joe White的精彩提示)

if (!environment['X']) {
    throw new Error('No "X" set')
}

这可以防止REST调用通过。 但是在收集运行器模式下,它会停止整个测试套件。

但是当与纽曼收集跑步者配合使用时,它的工作正常。

答案 1 :(得分:1)

抛出错误在这个测试中工作正常:

var value = pm.environment.get('X')

if (value == undefined || value == null || value.length == 0) {
    throw new Error('No "X" set!')
}