1. Ubuntu19 上跑 Robot Framework 自动化测试,为什么还要接 AI 通道
Robot Framework 在 Ubuntu19 桌面环境里做自动化测试,本身不算难:Python3 + pip + robotframework 三件套装完,写个.robot文件就能跑。真正让人头疼的是写用例阶段——关键字记不全、断言写错、日志看不懂、失败原因要一行行翻 output.xml。这时候如果编辑器里能有个懂 Robot 语法的 AI 助手,边写边补全、边报错边解释,效率会完全不一样。
这篇要解决的就是这件事:在 Ubuntu19 + vscode 里搭好 Robot Framework 工程,同时通过 TaoToken 的统一 Key 把 AI 辅助能力接进编辑器。TaoToken 是一个统一模型接入网关,你可以把它理解成「一个 Key 走通多家模型」的通道,适合个人开发者和中小团队在本地工具链里快速挂上 AI 能力,不用为每个模型单独申请账号、单独配环境变量。它提供兼容 OpenAI 风格的接口,vscode 里的 Continue、Cline 这类插件,以及命令行里的 Claude Code,都能直接对接。
适合谁看:正在用 Ubuntu 做测试开发、想给 Robot Framework 工程加 AI 辅助、又不想折腾多套 Key 的人。下面从环境准备开始,一步步给可复制的命令和配置,最后跑一次真实用例并验证接口连通性。全程在 Ubuntu19 桌面环境实测,命令和路径都按原样给出,你照着敲即可。
2. TaoToken 前置准备:拿统一 Key 与确认 Base URL
在动 vscode 之前,先把 TaoToken 这边的接入信息准备好。这一步不复杂,但顺序别搞反:先有 Key,再配插件,否则插件里填了空 Key 会一直报 401。
2.1 注册并创建 API Key
打开 TaoToken 官网https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite,注册登录后进入控制台。控制台地址是https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite,在「API Keys」页面点创建,复制生成的 Key。这个 Key 只显示一次,建议先粘到本地临时文件里,等会儿要填进 vscode 配置。
Key 的格式通常是一串以sk-开头的字符串。拿到后先别急着关页面,顺手确认两件事:一是账户里有没有可用额度,二是你要用的模型 ID 叫什么。模型 ID 在「模型对话」页面能看到,也可以直接调接口列出来。
2.2 确认 Base URL 和模型 ID
TaoToken 的 API 入口是https://taotoken.net/api,注意这个地址不带任何查询参数,配置里就填这个。模型 ID 常见的有gpt-4o、claude-3-5-sonnet这类,具体以你控制台里可用的为准。如果你不确定,可以用下面这条命令列一下:
curl https://taotoken.net/api/models \ -H "Authorization: Bearer sk-你的Key"返回的 JSON 里data数组就是可用模型列表,每个元素的id字段就是模型 ID。这一步能跑通,说明 Key 和网络都没问题,后面 vscode 里配错了也好排查。
2.3 把 Key 放进环境变量而不是硬编码
很多教程直接把 Key 写进 settings.json,方便是方便,但一旦这个文件被同步到 Git 或者截图发出去,Key 就泄露了。更稳的做法是写进 shell 环境变量,vscode 从环境里读。在~/.bashrc末尾加两行:
export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"然后source ~/.bashrc让它生效。验证一下:
echo $TAOTOKEN_API_KEY能打印出 Key 就对了。这样后面插件配置里引用${env:TAOTOKEN_API_KEY}就行,配置文件本身不含敏感信息。
3. 可复制配置:vscode settings.json 与 Robot 工程结构
环境变量准备好后,开始配 vscode。这一节给的是可以直接复制的配置片段,路径和字段都按 Ubuntu19 下的实际情况写。
3.1 安装 Python3 与 Robot Framework
Ubuntu19 自带 Python3,但版本可能偏旧,先确认:
python3 --version如果低于 3.6,建议升级。接着装 pip 和 Robot Framework。注意 Ubuntu19 下pip默认指向 Python2,装 Python3 的包要用pip3:
sudo apt-get update sudo apt-get install -y python3-pip pip3 install robotframework robotframework-seleniumlibrary装完验证:
robot --version能输出版本号就说明 Robot Framework 装好了。如果提示robot: command not found,多半是~/.local/bin没在 PATH 里,加一下:
export PATH="$HOME/.local/bin:$PATH"3.2 安装 vscode 与 Robot 相关插件
vscode 通过 Ubuntu Software 装即可,或者用 snap:
sudo snap install code --classic插件方面,Robot Framework 支持主要靠这几个:tomiturtiainen.rf-intellisense(关键字补全)、keith.robotframework(语法高亮)、vivainio.robotframework(运行支持)。命令行批量装:
code --install-extension tomiturtiainen.rf-intellisense code --install-extension keith.robotframework code --install-extension vivainio.robotframework code --install-extension ms-python.python code --install-extension formulahendry.code-runnerAI 辅助插件这里以 Continue 为例,它支持自定义 OpenAI 兼容端点,正好对接 TaoToken:
code --install-extension Continue.continue3.3 settings.json 完整配置
打开 vscode,按Ctrl+Shift+P,输入Preferences: Open Settings (JSON),把下面内容合并进去。注意python.pythonPath在较新版本里已改名python.defaultInterpreterPath,两个都写上兼容旧版:
{ "python.defaultInterpreterPath": "/usr/bin/python3", "python.pythonPath": "/usr/bin/python3", "code-runner.defaultLanguage": "python", "code-runner.executorMap": { "python": "/usr/bin/python3 -u" }, "code-runner.executorMapByFileExtension": { ".tcl": "tclsh", ".robot": "robot" }, "code-runner.ignoreSelection": true, "code-runner.runInTerminal": true, "robotcode.robot.path": "robot", "files.associations": { "*.robot": "robotframework" }, "editor.suggestSelection": "first", "explorer.confirmDelete": false }这里把.robot文件关联到 robotframework 语言模式,Code Runner 遇到.robot就调robot命令执行。code-runner.runInTerminal设为 true,是因为 Robot 的输出比较长,在终端里看比 OUTPUT 窗口清楚。
3.4 Continue 插件对接 TaoToken
Continue 的配置文件在~/.continue/config.json。如果目录不存在先建:
mkdir -p ~/.continue然后写入:
{ "models": [ { "title": "TaoToken GPT-4o", "provider": "openai", "model": "gpt-4o", "apiKey": "sk-你的Key", "apiBase": "https://taotoken.net/api" } ], "tabAutocompleteModel": { "title": "TaoToken 补全", "provider": "openai", "model": "gpt-4o", "apiKey": "sk-你的Key", "apiBase": "https://taotoken.net/api" } }三件套对齐一下:Base URL 是https://taotoken.net/api,Key 是sk-开头那串,Model ID 是gpt-4o(换成你控制台里可用的即可)。这三个字段任何一个写错,插件都会报错,后面第 5 节会逐个对照。
3.5 Robot 工程目录结构
建一个干净的工程目录,结构如下:
robot-demo/ ├── tests/ │ └── hello_robot.robot ├── resources/ │ └── common.robot └── results/tests放用例,resources放公共关键字,results放执行输出。hello_robot.robot内容:
*** Settings *** Documentation TaoToken 接入验证用例 Library OperatingSystem *** Variables *** ${MESSAGE} Hello, world! *** Test Cases *** My Test [Documentation] 验证基础日志与关键字 Log ${MESSAGE} My Keyword /tmp Another Test Should Be Equal ${MESSAGE} Hello, world! *** Keywords *** My Keyword [Arguments] ${path} Directory Should Exist ${path}这个用例同时覆盖了变量、日志、断言和自定义关键字,跑通它基本能确认 Robot 环境没问题。
4. 验证请求:跑通用例并确认接口连通
配置写完,接下来做两件验证:一是 Robot 用例能跑,二是 TaoToken 接口能通。两件事分开验,出问题好定位。
4.1 执行 Robot 用例
在工程根目录下执行:
robot --outputdir results tests/hello_robot.robot正常输出类似:
============================================================================== Hello Robot ============================================================================== My Test | PASS | ------------------------------------------------------------------------------ Another Test | PASS | ------------------------------------------------------------------------------ Hello Robot | PASS | 2 tests, 2 passed, 0 failed ==============================================================================results目录下会生成output.xml、log.html、report.html。用浏览器打开report.html能看到可视化的通过率。如果这里就报错,先别管 AI 部分,把 Robot 本身跑通再说。
4.2 在 vscode 里用 Code Runner 跑
打开hello_robot.robot,右键选Run Code。因为前面配了code-runner.executorMapByFileExtension,它会自动调robot命令。终端里应该出现和上面一样的输出。如果提示robot: command not found,说明 vscode 启动时没继承 PATH,重启 vscode 或者从终端code .启动即可。
4.3 验证 TaoToken 接口连通
用 curl 直接打一次对话接口,确认 Key 和 Base URL 都对:
curl https://taotoken.net/api/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "messages": [ {"role": "user", "content": "用一句话解释 Robot Framework 是什么"} ] }'返回 JSON 里choices[0].message.content就是模型回复。能拿到回复,说明接口通了。这一步很关键,因为 vscode 插件报错时,你没法确定是插件问题还是 Key 问题,先用 curl 把变量排除掉。
4.4 在 Continue 里实测 AI 辅助
回到 vscode,打开hello_robot.robot,按Ctrl+L唤起 Continue 侧边栏,输入「帮我给这个用例加一个检查文件存在的关键字」。如果配置正确,它会基于当前文件上下文给出建议。实测下来,Robot 的关键字补全和断言建议是它比较擅长的部分,尤其是Should Be Equal、Should Contain这类断言的参数顺序,容易写反,让 AI 检查一遍能省不少调试时间。
4.5 用模型对话页面交叉验证
如果插件里一直没反应,可以打开 TaoToken 的模型对话页面https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite,在网页里直接发一条消息。网页能通、插件不通,问题就在插件配置;网页也不通,问题在 Key 或额度。这个交叉验证能快速缩小排查范围。
5. 本篇常见错排查:401、local proxy failed 与 reading choices
配置过程中最容易卡在几个固定报错上,这一节按真实报错逐个对照。
5.1 401 Unauthorized
最常见。报错长这样:
Error: 401 Unauthorized - invalid api key原因就三类:Key 复制时带了空格或换行、Key 已失效或被删、请求头里Bearer后面没空格。检查方法:把 Key 重新复制一遍,确认Authorization: Bearer sk-xxx中间是一个空格。如果用的是环境变量引用,确认echo $TAOTOKEN_API_KEY能打印出完整 Key。
5.2 local proxy failed / connection refused
报错类似:
Error: local proxy failed: dial tcp 127.0.0.1:7890: connect: connection refused这是插件或系统里配了本地代理端口,但那个端口没有服务在跑。检查 vscode 设置里有没有http.proxy,以及 shell 里有没有http_proxy、https_proxy环境变量。有的话清掉:
unset http_proxy https_proxy然后重启 vscode。TaoToken 的接口直接可达,不需要额外代理配置。
5.3 reading choices 报错
报错类似:
Error: reading 'choices': unexpected end of JSON input这通常不是 Key 的问题,而是接口返回了非预期内容,比如返回了 HTML 错误页。原因可能是 Base URL 写错了,比如写成了https://taotoken.net而漏了/api,或者多加了斜杠变成https://taotoken.net/api/。正确写法是https://taotoken.net/api,结尾不带斜杠。改完重启插件。
5.4 OAuth 相关报错
如果用的是 Claude Code 这类命令行工具,可能遇到:
Error: OAuth token expired or invalidClaude Code 对接 TaoToken 时,不要走 OAuth 登录流程,而是用 API Key 方式。配置~/.claude/settings.json或对应环境变量,把 Base URL 指向https://taotoken.net/api,Key 用 TaoToken 的 Key。三件套再次对齐:Base URL、Key、Model ID,缺一不可。
5.5 Robot 用例本身报错
如果 AI 部分都通了,但 Robot 跑不过,常见的是Directory Should Exist失败,因为/tmp在某些精简环境里不存在。改成/home或者你确认存在的目录即可。另外.robot文件编码要用 UTF-8,否则中文文档会乱码。
5.6 插件装了但没补全
Robot 的 IntelliSense 依赖语言服务器,装完插件要重启 vscode。如果还没补全,检查files.associations里*.robot是否映射到了robotframework。映射错了,插件不会激活。
6. 语义一致 CTA:把 AI 辅助接进你的测试工程
环境搭好之后,日常写 Robot 用例的流程会变成:在 vscode 里写关键字,Continue 侧边栏随时问语法和断言,遇到失败日志直接贴给 AI 解释。这套组合在 Ubuntu19 上跑下来很稳,关键是配置一次到位。
如果你还没拿 Key,先去 API Keys 页面创建:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite。接入细节和字段说明看文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite。想先在网页里试试模型效果,用模型对话:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite。如果你打算长期在编码和 Agent 场景里用,Coding Plan 会更划算:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite。
最后留一个我踩过的坑:改settings.json时别把原来的配置整个覆盖掉,vscode 的 JSON 配置是合并的,但如果你手动删了某个字段,插件可能就找不到解释器了。改之前先备份一份,出问题能快速回滚。Robot 用例跑通、接口 curl 通、插件能补全,这三件事都成了,这套环境就算立住了。