当前位置:首页>python>实用干货|Python+测试工具,自动化效率翻倍(附可直接复制脚本)

实用干货|Python+测试工具,自动化效率翻倍(附可直接复制脚本)

  • 2026-09-08 05:49:29
实用干货|Python+测试工具,自动化效率翻倍(附可直接复制脚本)

哈喽,测试有方的小伙伴们~ 很多测试工程师都知道,掌握Python+测试工具的组合,能让自动化测试效率翻倍,还能轻松应对复杂测试场景,也是大厂面试的高频考点。

但很多人卡在“不会写脚本”“不知道怎么结合工具”,今天就给大家整理了4个最实用的「Python+测试工具」实战脚本,覆盖接口测试、数据驱动、接口监控等核心场景,可直接复制运行,新手也能轻松上手!

✅ 场景1:Python+requests(接口自动化测试,替代Postman批量执行)

当需要批量执行大量接口用例时,Postman手动点击效率太低,而Python+requests库就能实现批量执行,还能自动判断接口是否正常,适合接口回归测试。

📌 可直接复制脚本:

import requests# 定义需要测试的接口列表api_urls = [    "https://jsonplaceholder.typicode.com/users",  # 免费测试API,安全可用    "https://jsonplaceholder.typicode.com/posts",    "https://jsonplaceholder.typicode.com/comments"]# 批量执行接口测试def batch_test_api():    for url in api_urls:        try:            response = requests.get(url, timeout=5)            # 判断接口是否正常(状态码200)            if response.status_code == 200:                print(f"✅ 接口{url}测试通过,响应状态码:200")            else:                print(f"❌ 接口{url}测试失败,响应状态码:{response.status_code}")        except Exception as e:            print(f"❌ 接口{url}请求异常,错误信息:{str(e)}")if __name__ == "__main__":    batch_test_api()

💡 用法:替换api_urls中的接口地址,运行脚本即可批量执行测试,自动输出测试结果,无需手动操作。

✅ 场景2:Python+csv(数据驱动测试,批量复用测试数据)

很多接口测试需要多组测试数据(如不同账号、不同参数),手动修改参数效率太低,用Python+csv就能实现数据驱动,从csv文件中读取测试数据,批量执行测试用例。

📌 可直接复制脚本:

import csvimport requests# 从csv文件中读取测试数据def read_test_data(file_path):    test_data = []    with open(file_path, 'r', encoding='utf-8') as file:        reader = csv.DictReader(file)        for row in reader:            test_data.append(row)  # 读取每行数据,存储为字典    return test_data# 执行接口测试(以POST请求为例)def test_post_api(test_data):    url = "https://jsonplaceholder.typicode.com/users"  # 测试接口    for data in test_data:        try:            # 转换参数类型(根据实际接口需求调整)            post_data = {                "name": data["name"],                "username": data["username"],                "email": data["email"]            }            response = requests.post(url, json=post_data, timeout=5)            if response.status_code == 201:                print(f"✅ 测试数据{data['name']}测试通过")            else:                print(f"❌ 测试数据{data['name']}测试失败,状态码:{response.status_code}")        except Exception as e:            print(f"❌ 测试数据{data['name']}请求异常:{str(e)}")if __name__ == "__main__":    # 读取csv测试数据(csv文件需和脚本在同一目录,格式:name,username,email)    test_data = read_test_data("test_data.csv")    test_post_api(test_data)

💡 用法:创建test_data.csv文件,按照“name,username,email”格式填写测试数据,运行脚本即可批量执行,适合多组数据的接口测试。

✅ 场景3:Python+JMeter(性能测试自动化,批量生成测试报告)

JMeter虽然能手动执行性能测试,但批量执行、自动生成报告比较麻烦,用Python就能调用JMeter,实现性能测试自动化,还能自动生成测试报告,节省时间。

📌 可直接复制脚本:

import osimport subprocess# 调用JMeter执行性能测试def run_jmeter_test(jmeter_path, test_plan_path, report_path):    # 检查JMeter和测试计划是否存在    if not os.path.exists(jmeter_path):        print("❌ JMeter路径不存在,请检查路径是否正确")        return    if not os.path.exists(test_plan_path):        print("❌ 测试计划不存在,请检查路径是否正确")        return    # 创建报告目录(若不存在)    if not os.path.exists(report_path):        os.makedirs(report_path)    # 调用JMeter命令执行测试,生成HTML报告    command = f"{jmeter_path} -n -t {test_plan_path} -l {report_path}/test_result.jtl -e -o {report_path}/html_report"    try:        subprocess.run(command, shell=True, check=True)        print(f"✅ 性能测试执行完成,测试报告已保存至:{report_path}/html_report")    except subprocess.CalledProcessError as e:        print(f"❌ 性能测试执行失败,错误信息:{str(e)}")if __name__ == "__main__":    # 替换为你的JMeter路径、测试计划路径、报告保存路径    JMETER_PATH = "D:/apache-jmeter-5.6/bin/jmeter.bat"  # Windows路径    TEST_PLAN_PATH = "D:/test_plan/test.jmx"  # JMeter测试计划路径    REPORT_PATH = "D:/test_report"  # 测试报告保存路径    run_jmeter_test(JMETER_PATH, TEST_PLAN_PATH, REPORT_PATH)

💡 用法:替换脚本中的JMeter路径、测试计划路径、报告保存路径,运行脚本即可自动执行性能测试,生成可视化HTML报告。

✅ 场景4:Python+smtplib(测试报告自动发送,无需手动转发)

测试完成后,需要将报告发送给团队成员,手动转发麻烦且容易遗漏,用Python+smtplib就能实现测试报告自动发送,测试完成后自动发送到指定邮箱。

📌 可直接复制脚本:

import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplication# 自动发送测试报告def send_test_report(sender, password, receiver, subject, report_path):    # 创建邮件对象    msg = MIMEMultipart()    msg["From"] = sender    msg["To"] = ",".join(receiver)  # 多个接收人用逗号分隔    msg["Subject"] = subject    # 邮件正文    body = "您好,本次测试已完成,测试报告详见附件,请查收!"    msg.attach(MIMEText(body, "plain", "utf-8"))    # 添加测试报告附件    if os.path.exists(report_path):        with open(report_path, "rb") as f:            attach = MIMEApplication(f.read(), _subtype="html")            attach.add_header("Content-Disposition", "attachment", filename=os.path.basename(report_path))            msg.attach(attach)    else:        print("❌ 测试报告不存在,无法添加附件")        return    # 发送邮件(以QQ邮箱为例)    try:        smtp_server = "smtp.qq.com"        smtp_port = 587        with smtplib.SMTP(smtp_server, smtp_port) as server:            server.starttls()            server.login(sender, password)  # 密码为QQ邮箱授权码            server.send_message(msg)        print("✅ 测试报告已成功发送")    except Exception as e:        print(f"❌ 测试报告发送失败,错误信息:{str(e)}")if __name__ == "__main__":    # 替换为你的邮箱信息    SENDER = "your_email@qq.com"  # 发送者邮箱    PASSWORD = "your_auth_code"  # 邮箱授权码(不是登录密码)    RECEIVER = ["receiver1@qq.com", "receiver2@qq.com"]  # 接收者邮箱    SUBJECT = "接口自动化测试报告"  # 邮件主题    REPORT_PATH = "D:/test_report/html_report/index.html"  # 测试报告路径    send_test_report(SENDER, PASSWORD, RECEIVER, SUBJECT, REPORT_PATH)

💡 用法:替换邮箱信息、报告路径,开启邮箱授权码(如QQ邮箱需在设置中开启),运行脚本即可自动发送测试报告。

💬 最后想说:Python+测试工具的组合,核心是“自动化、省时间”,以上4个脚本覆盖了日常测试的核心场景,可直接复制修改使用,帮你摆脱重复劳动,提升工作效率。

为了帮大家更好地掌握Python+测试工具的实战技巧,我整理了「脚本完整版+依赖包安装教程+常见问题解答」,还有更多实战场景脚本,新手跟着学,轻松实现自动化测试进阶!

👉 关注【测试有方】,后台回复「Python脚本」,直接领取全部资料,一起高效办公,进阶大厂测试工程师~

下期预告:Python+Selenium实战,Web自动化测试从零到一,新手也能轻松学会!

最新文章

随机文章