执行botium-cli emulator时遇ECONN REFUSED错误,求解决方案
Botium连接AWS Lex v2报错ECONN REFUSED的解决方法
问题分析
你的Botium配置存在多处语法和格式错误,导致无法正确连接AWS Lex v2 Runtime API:
- API URL格式错误,缺少必要路径分隔符和正确的占位符结构
- 请求头Content-Type值不符合标准
- 请求体JSON语法存在错误
- 响应JSONPath语法有误
另外,botium-cli run显示测试通过是因为配置错误导致请求未实际发送,测试用例没有真正执行断言逻辑;而botium-cli emulator会尝试建立实际连接,因此暴露了连接失败的问题。
修复步骤
1. 修正SIMPLEREST_URL格式
AWS Lex v2 Text Runtime API的正确URL格式为:
https://runtime-v2-lex.us-east-1.amazonaws.com/bots/{BotId}/botAliases/{BotAliasId}/botLocales/{LocaleId}/sessions/{SessionId}/text
替换占位符为你的实际信息,同时可使用Botium内置变量{{$uuid}}自动生成唯一会话ID,示例:
"SIMPLEREST_URL": "https://runtime-v2-lex.us-east-1.amazonaws.com/bots/your-bot-id/botAliases/your-bot-alias-id/botLocales/en_US/sessions/{{$uuid}}/text"
2. 修正请求头Content-Type
将Content-type的值改为标准的application/json:
"REST_HEADERS_TEMPLATE": {"Content-type":"application/json","Authorization" : "Bearer 你的有效令牌"}
3. 修正请求体JSON语法
移除多余转义符,确保JSON结构正确:
"REST_BODY_TEMPLATE": {"text":"{{msg.messageText}}","sessionState":{"sessionAttributes":{}}}
4. 修正响应JSONPath语法
将$.messages[*}.content中的}改为],正确的JSONPath为:
"Simplerest_response_jsonpath": "$.messages[*].content"
5. 验证权限与API可用性
- 确认Bearer令牌有效,且拥有
lex:RecognizeText权限 - 先用curl/Postman测试API是否能正常调用,确保URL、请求头、请求体均正确
验证修复
修正配置后,重新执行botium-cli emulator,若配置正确,应能正常连接Lex机器人并发送消息;再执行botium-cli run,测试用例会实际发送请求并验证响应。
内容的提问来源于stack exchange,提问作者Lakshmi S
相关产品推荐
相关产品推荐

