环境搭建:工欲善其事,必先利其器
说实话,做数据回放测试,最怕什么?
不是脚本写不出来,而是环境配了一整天,最后发现版本冲突。我早期就踩过这个坑——花了两天配环境,结果pandas和requests版本不兼容,回放的数据全是乱码。嗯,从那以后,我养成了一个习惯:先把环境搭得干干净净,再动手写代码。
这一章,我们就来搞定三件事:Python环境、依赖库、录制工具。说白了,就是给你的测试工作台配齐家伙事儿。
2.1 Python环境准备
我个人习惯用 Python 3.8+。为什么?因为pandas在3.8以上版本跑得最稳,requests也完全兼容。你想想看,要是用Python 2.7,连f-string都用不了,写回放脚本得多憋屈。
步骤一:安装Python
- 去官网下载Python 3.9或3.10(别下最新版,有些库还没适配)
- 安装时记得勾选「Add Python to PATH」
- 打开终端,输入
python --version验证
步骤二:创建虚拟环境
我强烈建议每个项目单独建一个虚拟环境。为什么?因为不同项目依赖的库版本可能打架。我曾经在一个项目里同时用了pandas 1.3和1.5,结果DataFrame的API变了,回放脚本直接崩了。
# 创建虚拟环境
python -m venv replay_env
# 激活(Windows)
replay_env\Scripts\activate
# 激活(Mac/Linux)
source replay_env/bin/activate
激活后,终端前面会出现 (replay_env) 字样,说明你已经在虚拟环境里了。这时候安装的库,都只在这个项目里生效。
.python-version 文件,写上Python版本号。这样换电脑时,看一眼就知道该装哪个版本。
2.2 依赖库安装
数据回放测试,核心就三个库:pandas(数据处理)、requests(HTTP请求)、pytest(测试框架)。
安装命令很简单:
pip install pandas requests pytest
但这里有个坑——版本锁定。我建议安装完成后,立刻生成一个 requirements.txt:
pip freeze > requirements.txt
这样,别人拿到你的项目,直接 pip install -r requirements.txt 就能复现一模一样的环境。我在团队里推行这个做法后,环境问题减少了80%。
各库的作用:
| 库名 | 版本建议 | 在回放测试中的角色 |
|---|---|---|
| pandas | ≥1.3.0 | 读取CSV/Excel中的录制数据,做数据清洗和比对 |
| requests | ≥2.25.0 | 发送HTTP请求,模拟用户操作 |
| pytest | ≥6.2.0 | 组织测试用例,生成测试报告 |
pip install --proxy http://proxy.company.com:8080 pandas
2.3 录制工具选择
录制工具,说白了就是「把用户操作抓下来,存成文件」。我试过不少工具,最后常用的就三个:
- Charles:抓HTTP/HTTPS请求,导出为CSV或JSON。适合Web端回放。
- Fiddler:类似Charles,但更轻量。我习惯用它做快速验证。
- Postman Interceptor:配合Postman使用,直接录制浏览器请求。适合API测试。
我个人推荐 Charles。为什么?因为它导出格式最干净,pandas读起来几乎不用清洗。你想想看,如果录制出来的数据乱七八糟,回放脚本里还得花一半时间做数据清洗,那效率反而低了。
录制流程:
- 打开Charles,设置SSL代理(抓HTTPS必须)
- 浏览器配置代理为127.0.0.1:8888
- 操作一遍被测系统
- 在Charles中选中请求,右键导出为CSV
嗯,这里要注意:不要录太多请求。我见过有人一口气录了2000条,结果回放时跑了一个小时。其实核心场景就那么几个,录10-20条关键请求就够了。
2.4 知识体系总览
下面这张图,把本章的知识结构串起来了。你可以把它贴在工位旁边,配环境时对照着来:
这张图你看懂了吗?其实就是三块:环境 → 库 → 工具。配好这三样,后面写回放脚本就是水到渠成的事。
好了,环境搭好了,下一章我们就开始动手写回放脚本。到时候你会发现,前面这些准备工作,每一分钟都值。