哈喽,测试有方的小伙伴们~ 很多测试工程师都知道,掌握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自动化测试从零到一,新手也能轻松学会!