TestCafe在Authorization请求头中添加前缀问题求助
解决TestCafe给XHR请求URI参数中的Token添加前缀问题
问题原因
TestCafe的自动认证机制会误将URI参数里的Token识别为认证凭证,自动添加前缀:~~~TestCafe added this prefix to control the authorization flow ~~~ 来干预认证流程,这和业务需求冲突。
解决方案
方案1:全局禁用TestCafe自动认证
直接关闭自动认证功能,从根源上避免前缀生成:
- 命令行运行测试:添加
--disable-authentication参数testcafe chrome your-test-folder/ --disable-authentication - 配置文件设置:在
testcafe.config.js中加入配置项module.exports = { disableAuthentication: true };
方案2:用请求钩子针对性移除前缀
如果不想全局禁用自动认证,可创建请求钩子,在请求发送前剥离TestCafe添加的前缀:
import { RequestHook } from 'testcafe'; class StripTestCafeTokenPrefix extends RequestHook { constructor() { super(); } async onRequest(event) { const prefixRegex = /:~~~TestCafe added this prefix to control the authorization flow ~~~ /; if (prefixRegex.test(event.request.url)) { event.request.url = event.request.url.replace(prefixRegex, ''); } } async onResponse() {} } const tokenPrefixHook = new StripTestCafeTokenPrefix(); // 在测试Fixture中挂载钩子 fixture`业务测试集合` .requestHooks(tokenPrefixHook);
验证
应用方案后重新运行测试,检查XHR请求的URI参数,确认TestCafe添加的前缀已被移除或不再生成。
内容的提问来源于stack exchange,提问作者Prasad Desai
相关产品推荐
相关产品推荐

