【发布时间】:2021-01-22 19:11:40
【问题描述】:
我有多个场景相互构建的功能。可以将其想象为第一个请求获取一些数据,然后将这些数据泵入第二个请求,依此类推。
只要所有请求都发送到同一个主机,这样就可以正常工作。但是,该行中的最后一个请求转到同一主机上的不同端口,但是从Karate 调用的端口当然是错误的。
这里是karate-config.js:
function fn() {
karate.configure('connectTimeout', 10000);
karate.configure('readTimeout', 10000);
return {
tenant: 'ipt',
bank: 'ndb',
baseUrl: karate.properties['mws.baseUrl'] ? karate.properties['mws.baseUrl'] : 'http://localhost:8080',
errorIdentifierMatches: function (actualErrorIdentifier, expectedErrorIdentifier) {
return actualErrorIdentifier.startsWith(expectedErrorIdentifier);
},
sleep: function (millis) {
karate.log('Sleeping for ' + millis + ' ms');
java.lang.Thread.sleep(millis)
},
generateUUID: function() {
return java.util.UUID.randomUUID() + '';
}
}
}
这导致最后一次调用转到http://localhost:8080/ipt/registerkey,而它应该是http://localhost:9390/ipt/registerkey
特性中的相关部分在Background中定义:
Background:
Given url baseUrl
* def s2wKeyExchangeEndpoint = ("/mws/v2/" + tenant + "/" + bank + "/s2w/startkeyexchange")
* def s2wVerifyAndSignEndpoint = ("/mws/v2/" + tenant + "/" + bank + "/s2w/verifyandsign")
* def s2wRegisterKey = ("/ipt/registerkey")
有没有办法从我的功能中更改 baseUrl?还有其他选择吗?
【问题讨论】:
标签: karate