🔥 交流讨论:欢迎加入我们一起学习!
🔥 资源分享:耗时200+小时精选的「软件测试」资料包
🔥 教程推荐:火遍全网的《软件测试》教程
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
Python是一门功能强大的编程语言,不仅可以用于开发应用程序,还可以用于自动化测试。对于测试人员来说,掌握一些简单但实用的Python自动化测试脚本,可以提高工作效率并减少重复劳动。本文将介绍10个常用的Python自动化测试脚本,并提供实际接口自动化工作中的示例代码。
批量执行接口测试用例
import unittest
class MyTestCase(unittest.TestCase):
def test_case1(self):
# 执行接口测试用例1
pass
def test_case2(self):
# 执行接口测试用例2
pass
if __name__ == '__main__':
unittest.main()
数据驱动测试
import csv
def read_test_data(file_path):
test_data = []
with open(file_path, 'r') as file:
reader = csv.DictReader(file)
for row in reader:
test_data.append(row)
return test_data
def test_with_data(test_data):
for data in test_data:
# 使用测试数据执行接口测试
pass
if __name__ == '__main__':
test_data = read_test_data('test_data.csv')
test_with_data(test_data)
接口监控
import requests
def check_api_status(api_url):
response = requests.get(api_url)
if response.status_code == 200:
print(f"接口{api_url}正常")
else:
print(f"接口{api_url}异常")
if __name__ == '__main__':
api_urls = ['https://api.example.com/user', 'https://api.example.com/product']
for url in api_urls:
check_api_status(url)
接口性能测试
import time
import requests
def measure_response_time(api_url):
start_time = time.time()
response = requests.get(api_url)
end_time = time.time()
response_time = end_time - start_time
print(f"接口{api_url}的响应时间为:{response_time}秒")
if __name__ == '__main__':
api_urls = ['https://api.example.com/user', 'https://api.example.com/product']
for url in api_urls:
measure_response_time(url)
数据库测试
import pymysql
def connect_to_database(host, user, password, database):
conn = pymysql.connect(host=host, user=user, password=password, database=database)
return conn
def execute_sql_query(conn, sql_query):
cursor = conn.cursor()
cursor.execute(sql_query)
result = cursor.fetchall()
cursor.close()
return result
if __name__ == '__main__':
db_conn = connect_to_database('localhost', 'root', 'password', 'mydatabase')
result = execute_sql_query(db_conn, 'SELECT * FROM users')
print(result)
db_conn.close()
页面截图
from selenium import webdriver
def take_screenshot(url, file_path):
driver = webdriver.Chrome()
driver.get(url)
driver.save_screenshot(file_path)
driver.quit()
if __name__ == '__main__':
take_screenshot('https://www.example.com', 'screenshot.png')
邮件发送报告
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def send_email(sender, password, receiver, subject, message):
smtp_server = 'smtp.example.com'
smtp_port = 587
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(sender, password)
server.send_message(msg)
if __name__ == '__main__':
sender = 'sender@example.com'
password = 'password'
receiver = 'receiver@example.com'
subject = '自动化测试报告'
message = '这是自动化测试的报告,请查收。'
send_email(sender, password, receiver, subject, message)
数据生成器
import random
def generate_random_number(min_value, max_value):
return random.randint(min_value, max_value)
def generate_test_data(num_samples):
test_data = []
for _ in range(num_samples):
test_data.append(generate_random_number(1, 100))
return test_data
if __name__ == '__main__':
data = generate_test_data(10)
print(data)
日志记录
- 数据验证
import json
def validate_response_data(response_data):
try:
data = json.loads(response_data)
if 'name' in data and 'email' in data:
print("接口返回数据验证通过")
else:
print("接口返回数据验证不通过")
except ValueError:
print("接口返回数据无效")
if __name__ == '__main__':
response_data = '{"name": "John", "email": "john@example.com"}'
validate_response_data(response_data)
以上是常用的10个Python自动化测试脚本,涵盖了批量执行测试用例、数据驱动测试、接口监控、接口性能测试、数据库测试、页面截图、邮件发送报告、数据生成器、日志记录和接口数据验证等方面。通过学习和掌握这些脚本的使用,文职人员可以更好地应对接口自动化测试工作,提高工作效率和质量。希望本文对你有所帮助!
最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!