在自动化测试领域,Python凭借其简洁明了的语法和丰富的库支持,成为了最受欢迎的编程语言之一。然而,在编写自动化测试脚本时,仅仅使用Python的标准库可能无法满足所有需求。这时,我们可以通过编写一些补充函数来提升测试效率与准确性。以下是一些实用的Python补充函数,它们将帮助你在自动化测试的道路上更加得心应手。
1. 数据驱动测试
1.1 数据准备
def load_test_data(file_path):
"""
从CSV文件中加载测试数据
:param file_path: CSV文件路径
:return: 数据列表
"""
with open(file_path, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
data = list(reader)
return data
1.2 数据驱动
def test_with_data(test_function, data):
"""
使用数据驱动进行测试
:param test_function: 测试函数
:param data: 测试数据
"""
for row in data:
test_function(*row)
2. 页面元素定位
2.1 元素等待
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
def wait_for_element(driver, by, value, timeout=10):
"""
等待页面元素加载完成
:param driver: WebDriver对象
:param by: 定位方式(By.ID, By.CLASS_NAME等)
:param value: 定位值
:param timeout: 等待超时时间(秒)
:return: 定位的元素
"""
element = WebDriverWait(driver, timeout).until(
EC.presence_of_element_located((by, value))
)
return element
2.2 元素操作
def send_keys(driver, by, value, keys):
"""
向页面元素发送按键
:param driver: WebDriver对象
:param by: 定位方式
:param value: 定位值
:param keys: 按键
"""
element = wait_for_element(driver, by, value)
element.send_keys(keys)
3. 日志记录
import logging
def setup_logging():
"""
设置日志记录
"""
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
def log_info(message):
"""
记录日志信息
:param message: 日志信息
"""
logging.info(message)
4. 异常处理
def safe_test(test_function):
"""
安全执行测试函数,捕获异常
:param test_function: 测试函数
"""
try:
test_function()
log_info("Test passed")
except Exception as e:
log_info(f"Test failed: {e}")
通过以上补充函数,你可以轻松地编写自动化测试脚本,提高测试效率与准确性。在实际项目中,你可以根据自己的需求对这些函数进行修改和扩展,使其更加符合你的使用习惯。
