【问题标题】:Token management in Karate parallel execution空手道并行执行中的令牌管理
【发布时间】:2022-02-01 15:51:13
【问题描述】:

场景:我的 API 测试中的所有端点都需要身份验证,因此需要通过授权标头。我有Authentication.feature 文件,我从文件中读取刷新令牌,生成新的访问令牌,将新的刷新令牌写回文件。运行每个场景后,我需要将刷新令牌更新回文件,它将被下一个功能使用。从karate-config.js 文件调用Authentication.feature 文件,并设置如下所示的身份验证头

var response = karate.call('classpath:Test/features/Authentication.feature',config).response;
var token = response.access_token
karate.configure('headers',{Authorization: 'Bearer '+token});

到目前为止一切正常,但是当我使用 junit5 并行运行器时,它会导致身份验证令牌出现问题。不是最新的刷新令牌写入文件。我尝试通过使文件读/写部分同步,但它并没有解决问题。我还在Authentication.feature中尝试了@parallel=false注释,仍然没有运气。如何让我的测试在使用最新刷新令牌正确更新文件的同时并行运行

【问题讨论】:

    标签: karate junit5


    【解决方案1】:

    推荐的方法是使用karate.callSingle() - 如果您还没有,请阅读:https://github.com/karatelabs/karate#hooks

    注意下面这个代码示例是karate-config.js中的JS:

    var result = karate.callSingle('classpath:some/package/my.feature');
    

    另请参阅此答案以了解其他一些想法:https://*.com/a/53516885/143475

    【讨论】:

      最近更新 更多