Karate 如何在空手道框架中编辑已配置的标题

Karate 如何在空手道框架中编辑已配置的标题,karate,Karate,在我的框架中,我有headers.js文件。我使用命令*configure headers=read('headers.js')在每个功能文件的后台调用该js文件。正如预期的那样,在某些情况下,我需要更改“客户端id”值。例如headers.js有一个client id=xyz,我需要在两种情况下更改client id=abc,rest都使用client id作为xyz(我的头有20个不同的值,我不想在require功能文件中写入)有没有办法修改headers.js文件中的一个值并将其用作请求的

在我的框架中,我有headers.js文件。我使用命令
*configure headers=read('headers.js')
在每个功能文件的后台调用该js文件。正如预期的那样,在某些情况下,我需要更改“客户端id”值。例如headers.js有一个client id=xyz,我需要在两种情况下更改client id=abc,rest都使用client id作为xyz(我的头有20个不同的值,我不想在require功能文件中写入)有没有办法修改headers.js文件中的一个值并将其用作请求的头?

配置的头始终是最后应用的头。因此,您最好的解决方案是创建第二个
headers-xyz.js
,并且仅针对那些需要的场景执行
*配置headers=read('headers-xyz.js')

这取决于你重构js代码,以便你可以重用大部分代码。例如,这可能会起作用:

   function() {
     var fun = karate.read('headers.js');
     var res = fun();
     res['client-id'] = 'xyz';
     return res;
   }

配置的标头始终是最后一个应用的标头。因此,您最好的解决方案是创建第二个
headers-xyz.js
,并且仅针对那些需要的场景执行
*配置headers=read('headers-xyz.js')

这取决于你重构js代码,以便你可以重用大部分代码。例如,这可能会起作用:

   function() {
     var fun = karate.read('headers.js');
     var res = fun();
     res['client-id'] = 'xyz';
     return res;
   }

谢谢Peter,这很有用。如果我想从json中删除一个头值(例如,如果我想从头中删除'client id',嘿,Peter)。怎么办?@user9065498你可以使用普通的JS
delete res['client-id'应该在上面的示例中起作用。谢谢Peter,这很有用。如果我想从json中删除一个头值,请与Peter联系(例如,如果我想从头中删除“客户端id”)。怎么办?@user9065498你可以使用普通的JS
delete res['client-id'应该在上面的示例中起作用。