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自动化测试的适用对象

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

    适合做自动化的项目:

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

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

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

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

      Peppertype.ai
      Peppertype.ai

      高质量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速学教程(入门到精通)

    python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    WorkBuddy
    WorkBuddy

    腾讯云推出的AI原生桌面智能体工作台

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    什么是分布式
    什么是分布式

    分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

    411

    2023.08.11

    分布式和微服务的区别
    分布式和微服务的区别

    分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

    251

    2023.10.07

    json数据格式
    json数据格式

    JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

    457

    2023.08.07

    json是什么
    json是什么

    JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

    549

    2023.08.23

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    337

    2023.10.13

    go语言处理json数据方法
    go语言处理json数据方法

    本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

    82

    2025.09.10

    软件测试常用工具
    软件测试常用工具

    软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

    464

    2023.10.13

    edge是什么浏览器
    edge是什么浏览器

    Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

    1739

    2023.08.21

    TypeScript类型系统进阶与大型前端项目实践
    TypeScript类型系统进阶与大型前端项目实践

    本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

    26

    2026.03.13

    热门下载

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

    精品课程

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

    共4课时 | 22.5万人学习

    Django 教程
    Django 教程

    共28课时 | 5万人学习

    SciPy 教程
    SciPy 教程

    共10课时 | 1.9万人学习

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

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