环境准备:Python环境搭建与必要第三方库安装

说实话,做自动化测试这么多年,我踩过最大的坑就是环境没配好。你想想看,脚本写得再漂亮,一运行报个「ModuleNotFoundError」,那得多憋屈?

所以这一章,咱们就把地基打牢。我个人习惯先把Python环境整利索了,再装那几个必备库。别急,一步步来。

Python环境搭建

先说说Python版本的选择。我建议用Python 3.8以上版本,为什么?因为3.6已经停止维护了,3.7也快了。我在项目中遇到过用Python 3.6写的脚本,换到新机器上死活装不上某些库,最后发现是版本太老,库都不支持了。

具体步骤其实很简单:

  1. 去官网下载:打开python.org,找到Downloads,选你的操作系统版本
  2. 安装时勾选:记得把「Add Python to PATH」打上勾。嗯,这里要注意,很多人忘了这一步,后面命令行里敲python就报错
  3. 验证安装:打开终端或命令提示符,输入python --version,看到版本号就对了
小技巧:我个人习惯用pyenv来管理多个Python版本。做测试嘛,有时候需要在不同版本上验证兼容性,pyenv一键切换,省心。

虚拟环境:别让依赖打架

你想想看,项目A需要requests 2.25,项目B需要requests 2.26,装在一个环境里不就乱套了?

虚拟环境就是干这个的。我每个项目都会单独建一个虚拟环境,互不干扰。

# 创建虚拟环境
python -m venv test_env

# 激活(Windows)
test_env\Scripts\activate

# 激活(Mac/Linux)
source test_env/bin/activate

# 退出
deactivate

激活后,命令行前面会出现(test_env)的标识,说明你已经在虚拟环境里了。这时候装任何库都不会影响到全局。

四个必备库详解

好,环境搭好了,咱们来装库。这章要用的四个库,说白了就是自动化测试的四大护法。

库名 用途 安装命令
os 文件和路径操作 Python内置,无需安装
subprocess 执行外部命令和脚本 Python内置,无需安装
argparse 命令行参数解析 Python内置,无需安装
logging 日志记录 Python内置,无需安装

看到没?这四个全是Python标准库,不需要额外装。但别高兴太早,我后面会讲一些常用的第三方库,比如pytest、requests,那些才需要pip安装。

1. os库:文件和路径的管家

做批量测试,免不了要遍历文件夹、拼接路径、检查文件是否存在。os库就是干这个的。

import os

# 获取当前目录
current_dir = os.getcwd()

# 拼接路径
test_case_dir = os.path.join(current_dir, "test_cases")

# 遍历文件夹
for root, dirs, files in os.walk(test_case_dir):
    for file in files:
        if file.endswith(".py"):
            print(f"找到测试脚本:{file}")

我曾经犯过一个低级错误:直接用字符串拼接路径,结果在Linux上跑的时候路径分隔符不对,全崩了。从那以后,我老老实实用os.path.join。

2. subprocess库:调用外部脚本的利器

批量运行测试用例,说白了就是让Python去调用一个个测试脚本。subprocess就是干这个的。

import subprocess

# 运行一个测试脚本
result = subprocess.run(
    ["python", "test_case_001.py"],
    capture_output=True,
    text=True,
    timeout=30
)

# 检查运行结果
if result.returncode == 0:
    print("测试通过")
else:
    print(f"测试失败:{result.stderr}")
注意:timeout参数一定要加!我曾经有个测试脚本死循环了,没设超时,整个自动化流程卡了整整一个晚上。嗯,血的教训。

3. argparse库:让脚本更灵活

你想想看,每次改个参数都要去改代码,多麻烦。argparse让你可以在命令行传参数,脚本就灵活多了。

import argparse

parser = argparse.ArgumentParser(description="批量运行测试用例")
parser.add_argument("--test-dir", required=True, help="测试用例目录")
parser.add_argument("--report-dir", default="./reports", help="报告输出目录")
parser.add_argument("--parallel", type=int, default=1, help="并行执行数量")

args = parser.parse_args()

print(f"测试目录:{args.test_dir}")
print(f"报告目录:{args.report_dir}")
print(f"并行数:{args.parallel}")

这样你就能这样运行了:

python run_tests.py --test-dir ./cases --parallel 4

4. logging库:记录一切

测试跑了多久?哪个用例失败了?失败原因是什么?这些信息不记下来,出了问题你都不知道从哪查起。

import logging

# 配置日志
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('test_run.log'),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger(__name__)

# 使用日志
logger.info("开始执行测试用例")
try:
    # 执行测试...
    logger.info("测试用例执行成功")
except Exception as e:
    logger.error(f"测试用例执行失败:{str(e)}")
核心要点:logging的级别从低到高是DEBUG、INFO、WARNING、ERROR、CRITICAL。平时用INFO就够了,调试的时候切到DEBUG,能看到更多细节。

知识体系总览

说了这么多,咱们用一张图把这一章的核心逻辑串起来。你一看就明白了。

环境准备知识体系 Python环境搭建 Python安装与配置 虚拟环境创建 os - 文件路径操作 subprocess - 外部命令 argparse - 参数解析 logging - 日志记录 批量遍历测试脚本 并行执行测试用例 灵活配置运行参数 记录运行日志

这张图把这一章的内容分成了三块:左边是环境搭建的基础操作,中间是四个核心库,右边是它们在实际测试中的应用场景。说白了,你把这三点搞明白了,环境准备这块就稳了。

我的建议:别急着往下走。先把环境搭好,每个库都写个demo跑一遍。我当年学的时候,光logging就折腾了半天,但搞明白之后,后面写测试脚本就顺手多了。

好了,环境准备好了,咱们就可以开始写真正的批量测试脚本了。

可可精品资料库