本文共 3029 字,大约阅读时间需要 10 分钟。
自动化测试是一种通过编写自动化测试脚本来减少手工测试工作量的技术。它能够帮助测试人员从繁琑的重复操作中解脱出来,更好地发现产品缺陷。
应用场景:
自动化测试已广泛应用于多个领域。例如,网课平台通过自动化脚本完成课程刷课及答题,高速抢票平台则利用自动化程序定时抢票。这些场景充分展现了自动化测试的巨大价值。
掌握Python的快捷键能显著提高编码效率。以下是一些实用的快捷键:
函数是编写可维护代码的核心工具。在Python中,函数的定义格式如下:
def function_name(param1, param2): # 函数体 pass
函数的使用原则:
变量作用域:
面向对象编程通过类和对象的概念,将实际世界抽象为代码。类包含属性和方法,对象是类的实例化。
类的特性:
对象的作用:
对象是类的实例化,例如通过 class Cat 定义猫类,可以通过 cat = Cat() 创建一个猫对象。
Selenium3.x提供了多种元素定位方式,常见的有:
find_element_by_id("id")find_element_by_name("name")find_element_by_class_name("class_name")find_element_by_tag_name("tag_name")find_element_by_link_text("链接文本")find_element_by_partial_link_text("部分链接文本")find_element_by_css_selector("CSS选择器")find_element_by_xpath("//路径")driver.find_element_by_id("kw").send_keys("鹰迅课堂") Selenium 提供了丰富的元素操作方法,包括:
click()send_keys()(支持多种键盘事件)hover()drag_and_drop()context_click()元素等待是自动化测试中的核心概念,主要有以下两种方式:
from time import sleepsleep(10)
优点: 确保代码执行到指定位置。
缺点: 若元素未加载,仍需等待指定时间。
隐式等待通过设置定位元素时的超时时间来实现。默认检测频率为0.5秒。
方法:
driver.implicitly_wait(10)
特点: 全局生效,若超时抛出 NoSuchElementException。
显式等待通过 WebDriverWait 类实现,支持自定义等待策略。
示例:
from selenium.webdriver.support.expected_conditions import presence_of_element_locatedfrom selenium.webdriver.WebDriverWait import WebDriverWaitwait = WebDriverWait(driver, 10)element = wait.until( presence_of_element_located((By.ID, "id")))element.send_keys("输入值") 优点: 可定制等待策略,若超时抛出 TimeoutException。
Selenium 提供 ActionChains 类来实现复合事件操作。
示例:
from selenium.webdriver.common.actions import ActionChainsaction = ActionChains(driver)action.click(ele).perform()
键盘操作通过 Keys 类实现,支持多种按键事件。
示例:
from selenium.webdriver.common.keys import Keysdriver.send_keys(Keys.TAB) # 插入换行键driver.send_keys(Keys.ENTER) # 插入回车键
PyTest 是 Python 的自动化测试框架,支持 fixtures 和参数化测试。
特点:
确保用例独立运行,遵循模块化设计,便于迭代开发。
示例代码:
from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsdef test_login(): driver = webdriver.Chrome(options=chrome_options) driver.get("https://www.baidu.com") driver.find_element_by_id("kw").send_keys("鹰迅课堂") driver.find_element_by_id("tj_trdsr").click() driver.quit() 通过脚本生成测试报告并发送邮件,实现自动化测试流程。
代码示例:
import smtplibfrom email.mime.Text import MIMETextdef send_email(report_path): server = smtplib.SMTP("smtp.qq.com") server.sendmail("test@example.com", "receiver@example.com", MIMEText(open(report_path).read())) server.quit() 这篇文章涵盖了自动化测试的核心知识,结合实际案例,为测试工程师提供了实用的参考。
转载地址:http://egofk.baihongyu.com/