博客
关于我
Python+Selenium自动化测试项目实战【建议收藏】
阅读量:796 次
发布时间:2023-03-08

本文共 3029 字,大约阅读时间需要 10 分钟。

自动化测试入门与实战

第1章 自动化测试介绍

自动化测试是一种通过编写自动化测试脚本来减少手工测试工作量的技术。它能够帮助测试人员从繁琑的重复操作中解脱出来,更好地发现产品缺陷。

应用场景:

自动化测试已广泛应用于多个领域。例如,网课平台通过自动化脚本完成课程刷课及答题,高速抢票平台则利用自动化程序定时抢票。这些场景充分展现了自动化测试的巨大价值。


第2章 Python基础

2.1 Python常用快捷键

掌握Python的快捷键能显著提高编码效率。以下是一些实用的快捷键:

  • Ctrl + D:插入多行代码
  • Ctrl + Shift + D:插入块注释
  • Ctrl + Alt + T:快速定位到上一个修改的位置
  • Ctrl + Space:自动完成代码

2.2 函数

函数是编写可维护代码的核心工具。在Python中,函数的定义格式如下:

def function_name(param1, param2):    # 函数体    pass

函数的使用原则:

  • 封装:将代码模块化,便于管理和维护。
  • 抽象:隐藏内部实现细节,暴露接口供外部调用。
  • 参数传递:通过参数传递数据,实现灵活的功能扩展。

变量作用域:

  • 局部变量:仅在函数内部使用,函数结束后自动释放。
  • 全局变量:在整个程序中使用,需谨慎管理以避免冲突。

2.3 面向对象编程

面向对象编程通过类和对象的概念,将实际世界抽象为代码。类包含属性和方法,对象是类的实例化。

类的特性:

  • 属性:类的成员变量。
  • 方法:类的成员函数。

对象的作用:

对象是类的实例化,例如通过 class Cat 定义猫类,可以通过 cat = Cat() 创建一个猫对象。


第3章 元素定位方式

Selenium3.x提供了多种元素定位方式,常见的有:

  • id:find_element_by_id("id")
  • name:find_element_by_name("name")
  • class_name:find_element_by_class_name("class_name")
  • tag_name:find_element_by_tag_name("tag_name")
  • link_text:find_element_by_link_text("链接文本")
  • partial_link_text:find_element_by_partial_link_text("部分链接文本")
  • CSS选择器:find_element_by_css_selector("CSS选择器")
  • XPath:find_element_by_xpath("//路径")

  • 3.2 id选择器示例

    driver.find_element_by_id("kw").send_keys("鹰迅课堂")

    第4章 元素操作方法

    4.1 元素常用操作

    Selenium 提供了丰富的元素操作方法,包括:

    • 点击:click()
    • 输入:send_keys()(支持多种键盘事件)
    • 悬停:hover()
    • 拖拽:drag_and_drop()
    • 右键:context_click()

    第5章 元素等待

    元素等待是自动化测试中的核心概念,主要有以下两种方式:

    5.4 强制等待

    from time import sleepsleep(10)

    优点: 确保代码执行到指定位置。

    缺点: 若元素未加载,仍需等待指定时间。


    5.4 隐式等待

    隐式等待通过设置定位元素时的超时时间来实现。默认检测频率为0.5秒。

    方法:

    driver.implicitly_wait(10)

    特点: 全局生效,若超时抛出 NoSuchElementException。


    5.4 显式等待

    显式等待通过 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。


    第6章 鼓与键盘操作

    6.2 鼓操作

    Selenium 提供 ActionChains 类来实现复合事件操作。

    示例:

    from selenium.webdriver.common.actions import ActionChainsaction = ActionChains(driver)action.click(ele).perform()

    6.4 键盘操作

    键盘操作通过 Keys 类实现,支持多种按键事件。

    示例:

    from selenium.webdriver.common.keys import Keysdriver.send_keys(Keys.TAB)  # 插入换行键driver.send_keys(Keys.ENTER)  # 插入回车键

    第7章 UnitTest与PyTest

    7.2 PyTest

    PyTest 是 Python 的自动化测试框架,支持 fixtures 和参数化测试。

    特点:

    • 简洁高效:代码简洁,执行速度快。
    • 可扩展性强:支持插件和自定义报告。
    • 异常处理:自动处理异常,支持单元测试和集成测试。

    第8章 项目实战

    8.1 测试用例设计

    确保用例独立运行,遵循模块化设计,便于迭代开发。

    示例代码:

    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()

    8.2 自动发送测试邮件

    通过脚本生成测试报告并发送邮件,实现自动化测试流程。

    代码示例:

    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/

    你可能感兴趣的文章
    python 学习 面向对象编程
    查看>>
    Python 学习日记第三篇 -- 字典
    查看>>
    Python 学习笔记(一)Data type
    查看>>
    python 安装echarts
    查看>>
    python 安装opencv及问题解决
    查看>>
    Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    python 实现儿童算术游戏
    查看>>
    python 实现字符串转整型
    查看>>
    Python 实现定时任务的八种方案!
    查看>>
    Python 实现自动化测试 dubbo 协议接口
    查看>>
    python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
    查看>>
    Python 对mysql数据库的操作
    查看>>
    Python 对象数据库列表
    查看>>
    Python 导入requests报错No module named requests
    查看>>
    python 将函数加到列表中进行调用
    查看>>
    python 将图片与字符串相互转换
    查看>>
    Python 嵌套字典全面指南
    查看>>
    Python 工具v简介
    查看>>