0

0

Python自动化测试利器selenium怎么使用

WBOY

WBOY

发布时间:2023-05-17 10:43:37

|

1492人浏览过

|

来源于亿速云

转载

    1 自动化测试

    自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

    Python自动化测试利器selenium怎么使用

    自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自动化测试产出投入比(ROI),可以用较少的投入获得很好的收益。

    1.1 单元测试

    最大的投入应该在单元测试上,单元测试运行的频率也更加高。

    java的单元测试框架是Junit。

    立即学习Python免费学习笔记(深入)”;

    1.2 接口测试

    接口测试就是API测试,相对于UI自动化API自动化更加容易实现,执行起来也更稳定。

    接口自动化的有以下特点:

    • 可在产品前期,接口完成后介入

    • 用例维护量小

    • 适合接口变动较小,界面变动频繁的项目

    常见的接口自动化测试工具有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman等

    1.3 UI测试

    虽然测试金字塔告诉我们尽量多做API层的自动化测试,但是UI层的自动化测试更加贴近用户的需求和软件系统的实际业务。并且有时候我们不得不进行UI层的测试。

    UI自动化的特点:

    • 用例维护量大

    • 页面相关性强,必须后期项目页面开发完成后介入

    • UI测试适合与界面变动较小的项目

    UI层的测试框架比较多,比如Windows客户端测试的AutoIT,web测试的selenium以及TestPlant ,eggPlant,Robot framework,QTP等。

    1.3.1 UI自动化测试的优点

    降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁,效果是非常明显的,自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力,而手工测试后期需要增加大量人力用于回归测试

    • 减少重复测试的时间,实现快速回归测试

    • 创建优良可靠的测试过程,减少人为错误

    • 可以运行更多更繁琐的测试

    • 可以执行一些手工测试困难或不可能进行的测试

    • 更好的利用资源

    • 测试脚本的复用性

    1.3.2 UI自动化测试的适用对象

    实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用。

    适合做自动化的项目:

    • 产品型项目。产品型的项目,新版本是在旧版本的基础上进行改进,功能变不大的项目,但项目的新老功能都必须重复的进行回归测试。自动化测试的优势在于回归测试,它可以有效验证是否引入了新的缺陷,以及老缺陷是否得到修复。在某种程度上可以把自动化测试工具叫做回归测试工具。

    • 机械并频繁的测试。在一个长周期的项目中,需要反复输入相同大量的数据。比如兼容性测试。

    以下情况的项目不适合做自动化测试:

    • 需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低

      LuckyCola工具库
      LuckyCola工具库

      LuckyCola工具库是您工作学习的智能助手,提供一系列AI驱动的工具,旨在为您的生活带来便利与高效。

      下载
    • 项目周期短,自动化脚本编制完成后使用次数不多,性价比低

    • 交互型较强的项目,需要人工干预的项目,自动化无法实施

    1.4 自动化测试流程

    • 分析:总体把握系统逻辑,分析出系统的核心体系架构。

    • 设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精

    • 实现:实现脚本,有两个要求一是断言,二是合理的运用参数化。

    • 执行:执行脚本远远没有我们想象中那么简单。脚本执行过程中的异常需要我们仔细的去分析原因。

    • 总结:测试结果的分析,和测试过程的总结是自动化测试的关键。

    • 维护:自动化测试脚本的维护是一个难以解决但又必须要解决的问题。

    • 分析:在自动化测试过程中深刻的分析自动化用例的覆盖风险和脚本维护的成本。

    2 selenium

    Selenium是web应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言。

    早期的selenium RC已经被现在的webDriver所替代,可以简单的理解为selenium1.0 +webdriver构成,现在的Selenium2.0。通常情况下,我们使用“Selenium”一词指的是Selenium2.0。Selenium包括Selenium IDE、Webdriver和Selenium Grid三个组件。

    分别做一下介绍:

    Selenium IDE

    Selenium IDE一个用于Selenium测试的完成集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。在调试过程中,你可以逐步执行或调整执行速度,并可以在底部查看日志以获取错误信息。录制的测试脚本可以以多种语言导出,比如java,C#,Python,Ruby等,方便掌握不同语言的测试人员操作。Webdriver

    Selenium RC 在浏览器中运行 JavaScript 应用,会存在环境沙箱问题,而WebDriver可以跳出JavaScript的沙箱,针对不同的浏览器创建更健壮的,分布式的,跨平台的自动化测试脚本。基于特定语言(Java,C#,Python,Ruby,Perl,JavaScript等)绑定来驱动浏览器对Web元素进行操作和验证。

    webdriver的工作原理:

    • 启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server。

    • 客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。

    • Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。

    selenium Grid

    selenium Grid是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息。可以实现在同一时刻不同服务器上执行不同的测试脚本。

    3 selenium IDE 录制脚本

    打开Edge-插件-选择selenium IDE:

    创建一个新项目,此时左部 Test Case 窗口会有一个Untitled 的测试案例,右键点击重命名为”test”

    Python自动化测试利器selenium怎么使用

    点击 IDE 的右上部录制按钮(小红点)开始手动录制

    在地址栏中输入待测试的网址如http://www.baidu.com,搜索关键词,这时可以看到IDE进行了录制操作。

    在页面中点击右键,可以增加检查点。

    录制结束后,点击录制按钮(小红点),结束本次手动录制。在selenium IDE 中,选中一个 Test Case,右击选择“Export 导出为test.py文件。

    将该脚本在python中运行并调试。

    # Generated by Selenium IDE
    import pytest
    import time
    import json
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    class TestTest():
      def setup_method(self, method):
        self.driver = webdriver.Chrome()
        self.vars = {}
      def teardown_method(self, method):
        self.driver.quit()
      def test_test(self):
        self.driver.get("https://www.baidu.com/")
        self.driver.set_window_size(809, 864)
        self.driver.find_element(By.ID, "kw").click()
        self.driver.execute_script("window.scrollTo(0,0)")
        self.driver.find_element(By.ID, "kw").send_keys("四月是你的谎言")
        self.driver.find_element(By.ID, "su").click()

    相关专题

    更多
    python开发工具
    python开发工具

    php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

    707

    2023.06.15

    python打包成可执行文件
    python打包成可执行文件

    本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

    625

    2023.07.20

    python能做什么
    python能做什么

    python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

    735

    2023.07.25

    format在python中的用法
    format在python中的用法

    Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    616

    2023.07.31

    python教程
    python教程

    Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

    1234

    2023.08.03

    python环境变量的配置
    python环境变量的配置

    Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

    547

    2023.08.04

    python eval
    python eval

    eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

    573

    2023.08.04

    scratch和python区别
    scratch和python区别

    scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

    695

    2023.08.11

    虚拟号码教程汇总
    虚拟号码教程汇总

    本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

    25

    2025.12.25

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    最新Python教程 从入门到精通
    最新Python教程 从入门到精通

    共4课时 | 0.6万人学习

    Django 教程
    Django 教程

    共28课时 | 2.5万人学习

    SciPy 教程
    SciPy 教程

    共10课时 | 0.9万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号