当前位置: 首页 > news >正文

【测试】之自动化测试概念篇

1. 自动化1.1 自动化概念自动的代替人的行为完成操作。自动化在生活中处处可见⾃动洒⽔机主要通上⽔就可以⾃动化洒⽔并且可以⾃动的旋转。⾃动洗⼿液免去了⼿动挤压可以⾃动感应出洗⼿液超市⾃动闸⻔不需要⼿动的开⻔关⻔⽣活中的⾃动化案例有效的减少了⼈⼒的消耗同时也提⾼了⽣活的质量。软件中的⾃动化测试也是如此通过⾃动化测试有效减少⼈⼒的消耗的同时也提⾼了测试的质量和效率。⾃动化的主要⽬的就是⽤来进⾏回归测试。什么是回归测试1.1.1 回归测试软件有多个版本需要进⾏功能的整体回归。为了避免新增功能影响到历史的功能需要进行功能的回归。软件通常有非常多的版本软件在不断的迭代更新当新的版本即将上线意味着有用户使用新的版本也有用户在使用旧的版本新的版本开发可能会影响到旧的版本如果不对旧版本进行测试可能会出现新版本上线之后旧版本无法使用或者旧版本出现了功能故障因此新版本和旧版本都需要执行测试常见面试题1.自动化测试能够取代人工测试吗⾃动化测试不⼀定⽐⼈⼯测试更能保障系统的可靠性⾃动化测试是测试⼈员⼿⼯编写后续如果有功能的变更⾃动化也需要进⾏不定期的维护和更新。2.自动化测试可以大幅度降低工作量错误坑“⼀定程度上”和“⼤幅度”的表达⽅式也需要注意注意测试笔试中的选择题尽量不要选择说的太死或者太绝对的选项~~~1.2 自动化分类讲⾃动化分类的⽬的是避免同学们将⾃动化混淆同时避免讲不同的⾃动化如何实施造成的课时压力很多同学经常听到⾃动化这个词但是很容易误以为⾃动化就是⼀个东西⾃动化是个统称同学们可以理解为我们常说的吃⽠这样的表达⽅式和⾃动化是⼀样的吃⽠可以是吃西⽠吃哈密⽠吃⾹⽠⾃动化也包含多种如接⼝⾃动化web⾃动化移动端⾃动化等等...主要介绍各测试分类为什么需要实施自动化⽬的和意义1.2.1 接口自动化1.接口自动化是什么用代码 / 工具自动调用软件接口前后端传数据的通道自动发请求、自动校验返回结果不用人工手动点、手动填参数。2. 为什么做、解决什么问题、目的解决手动测接口慢、重复、易错接口多、场景多人工反复测很累还容易错提前发现 bug接口是底层接口错了页面一定错接口测试早于 UI 测试回归测试省力改完代码自动跑一遍所有接口防止改坏旧功能提高效率大量用例一键执行节省人工目的保证接口稳定、数据传输正确、业务逻辑无误降低回归成本1.2.2 UI自动化UI测试也称为界⾯测试常⻅的UI⾃动化测试包含web⾃动化测试、移动端⾃动化测试等等。移动端自动化测试什么是移动端自决了什么问题⽬的是什么测试移动端界⾯表现移动端顾名思义就是部署在⼿机上的应⽤程序。移动端⾃动化测试主要测试程序部署在⼿机上能否按照预期的结果的进行操作。移动端测试通常不是将程序部署在移动端上进⾏测试⽽是需要安装模拟器在电脑上编写⾃动化测试脚本代码对模拟器上的软件进行操作移动端测试难度相对较⼤移动端测试的稳定性要⽐接⼝⾃动化测试和web⾃动化测试的稳定性要差很多原因主要是移动端测试收到的环境影响⽐较多web自动化测试什么是web⾃动化测试为什么要做解决了什么问题⽬的是什么测试web界⾯表现如何进⾏百度搜索通常来说我们手动进行百度搜索的步骤如下web⾃动化能够代替我们自动的执行。模拟⼈在浏览器上的操作⾏为⾃动的打开浏览器访问百度⾸⻚并进⾏⼀系列的搜索和验证等行为。1.3 自动化测试金字塔⾃动化的类型⾮常多那么到底哪⼀种是最好的哪⼀种测试的收益会更佳这⾥我们介绍测试圈内⾮常著名的⾃动化测试⾦字塔理想的自动化测试金字塔表达了自动化测试的理想情况利用较少的时间和精力在单元测试上就能够发现更多有效的问题。上图是理想化的自动化测试金字塔然而在企业中实际上是冰淇淋蛋筒反模式自动化需要⼤量的初始投资找到“突破点”与⼿动测试相⽐我们开始看到它对⻓期成本产⽣的积极影响也能够清楚这两种测试活动都是完全兼容产⽣短期和⻓期利益。2. web自动化测试学到这里希望同学们对自动化测试能够有一定的了解。然后实际在企业中我们需要对某一个特定的软件进行自动化的实施包含但不限于软件所有界面的UI自动化测试、所有接口的接口自动化测试。接下来我们将正式步入web自动化测试的学习了解企业中是如何使用工具来统一编写和管理自动化用例。2.1驱动上面给⼤家已经介绍过web系统的测试前提是需要打开浏览器通过访问web服务器来对服务器界面进行⼀系列的操作。对于手工测试来说这⼀系列的操作都需要测试⼈员手动的⼀步⼀步的来执⾏测试。那么对于自动化程序来说程序如何才能打开浏览器并执行我们预期的操作流程呢驱动⼀词应用广泛同学们都不会陌⽣。车有了驱动才能够让车跑起来。计算机有了驱动程序就可以与设备⽿机摄像头⻨克⻛键盘显⽰器等等设备进⾏通信。程序想要打开web浏览器就需要安装web驱动即WebDriver)WebDriver 以本地化⽅式驱动浏览器。2.1.1 安装驱动管理selenium安装谷歌浏览器驱动这里我们采用谷歌淘宝镜像CNPM Binaries Mirror必须使用跟浏览器版本配套的驱动才可以若版本不匹配则无法开发浏览器Chrome 驱动只要求前 3 段大版本一致148.0.7778最后一位差 1 完全兼容不会报错。下载之后把安装包进行解压浏览器若更新了呢?----意味着目前已下载的驱动无法使用~~~每次浏览器更新都需要重新下载新的驱动整个流程非常冗余/麻烦若通过安装驱动的方式来启动浏览器每次浏览器更新后对应的驱动也需要更新为了解决这个问题selenium中提供了驱动管理⼯具webdriver-manager有了webdriver-manager无需手动安装浏览器驱动即使浏览器更新也不会影响自动化的执行。命令pip install webdriver-manager安装完成驱动管理webdriver-manager⽀持的python版本为3.7~3.11WebDriver Manager是⼀个开源的命令⾏⼯具它可以⾃动下载和安装适⽤于不同浏览器的WebDriver。通过使⽤WebDriver Manager我们可以确保浏览器驱动版本始终与浏览器版本保持⼀致从而避免因版本不匹配而导致的各种问题。2.1.2 selenium库安装selenium库selenium版本很多统⼀使用selenium 4.0.0版本pip install selenium4.0.0安装完毕3. Selenium万事俱备只欠东风。接下来就是使⽤selenium来编写web自动化测试脚本。selenium是⼀个web⾃动化测试⼯具selenium中提供了丰富的方法供给使用者进⾏web⾃动化测试。3.1 一个简单的web自动化示例1检查python解释器确定selenium库和WebDriverManager库都安装成功并加载到当前项目中2使用selenium编写代码import time from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.by import By # #编写自动化脚本具体步骤 # #1.打开浏览器----驱动管理 ChromeIns D:\\chromedriver-win64\\chromedriver.exe #ChromeDriverManager().install() #创建谷歌浏览器驱动对象 driver webdriver.Chrome(serviceService(ChromeIns)) time.sleep(2) #2.输入百度网址https://www.baidu.com driver.get(https://www.baidu.com) time.sleep(2) #3.找到百度输入框输入关键词“迪丽热巴 driver.find_element(By.CSS_SELECTOR,#chat-textarea).send_keys(迪丽热巴) time.sleep(2) #4.点击“百度一下”按钮 driver.find_element(By.CSS_SELECTOR,#chat-submit-button).click() time.sleep(15) #5.关闭浏览器 driver.quit()​注意驱动管理方式初始化浏览器 代码在运行的时候会自动帮你下载浏览器驱动 有的时候它的下载驱动链接会被屏蔽掉 就无法正常访问 驱动下载不成功 代码就会报错 改成手动下载 加指定驱动路径驱动是提前下载好的 就不会再去下载了不过浏览器会自动更新小版本一般不影响大版本更新了 要重新下载驱动简单来说 就是没有自动帮我们下载好 对应浏览器的驱动 所以我们需要手动下载 并且指定手动下载好的驱动的路径3.2 selenium驱动浏览器的工作原理实现web⾃动化测试需要浏览器、浏览器驱动、selenium⾃动化脚本。这三者是如何交互最终实现web的⾃动化测试1. 通过selenium编写的⾃动化脚本代码中在ChromeDriverService中创建⼀个服务2. 通过创建好的服务打开webdriver安装在本地的驱动服务IP为localhostPORT为ChromeDriverService中创建的端⼝号该服务地址为selenium向webdriver发送请求的服务地址。3. 向浏览器驱动程序发送HTTP请求浏览器驱动程序解析请求打开浏览器并获得sessionid如果再次对浏览器操作需携带此id4. 打开浏览器后所有的selenium的操作(访问地址查找元素等)均通过创建好的服务链接到webdriver然后使⽤execute发送请求5. 驱动收到请求并对请求进⾏解析转成浏览器能够解析的脚本并发送给浏览器浏览器通过请求的内容执行对应动作6. 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本
http://www.zskr.cn/news/1400473.html

相关文章:

  • 2026年企业营销必知:揭秘GEO——比SEO更重要的下一代流量密码
  • UniversalUnityDemosaics:终极Unity游戏视觉恢复工具完整指南
  • 读工业软件简史01工厂设计
  • 猫抓插件终极教程:三步轻松下载网页视频资源
  • 【大模型篇】谈谈A2A协议(Agent-to-Agent)
  • 5分钟快速上手:微软官方XML编辑器XML Notepad完全指南
  • 别再只会显示数字了!用TM1637四位数码管做个简易时钟/计数器(附Arduino和STM32代码)
  • 基于保形预测的校准检索:为智能体系统注入统计可靠性
  • AI Agent项目失败率高达80%?深度解析Agent避坑指南
  • 3分钟快速上手:GitHub中文化插件终极指南,让GitHub界面说中文
  • 基于广义加性模型的气候模型偶然不确定性量化实践
  • Unity独立游戏开发:如何用C#脚本在Windows平台强制锁定游戏窗口宽高比(含全屏适配)
  • 5分钟掌握Mermaid Live Editor:免费在线图表编辑器的终极指南
  • 2026年全屋定制行业现状与品牌综合解析 - 产品测评官
  • 聊一聊AI - GEO搜索推广套餐性价比,尚棠科技值得选吗 - 工业品牌热点
  • 从调参到调系统:LangSmith如何重塑LLM应用调试与优化方法论
  • 2026黄金回收价格及靠谱公司,快速黄金回收联系方式推荐 - 工业品牌热点
  • 【回眸】大学生县域就业机会地图实战指南
  • Python初学者项目练习41--反转头尾并拼接字符串
  • 【GPS模组】移远EC20 基于Arduino的GPS流速仪
  • video-subtitle-extractor:如何让AI看懂视频中的“隐形文字“并精准提取?
  • Embedding 到底是什么:从词向量到句子向量、相似度与局限性
  • AI辅助爬虫开发:Scrapy框架下的机遇与挑战
  • 业务接 AI 前,先别急着调模型,先做输入脱敏层
  • 5分钟掌握AMD Ryzen隐藏性能:SMUDebugTool实战指南
  • 实战经验:如何修复 MariaDB 因 InnoDB 损坏导致的启动失败 (status=6/ABRT)
  • 从工具使用者到架构指挥者:Claude Code高级配置与协作模式实战
  • 保姆级教程:用博图V17搞定WINCC RT Advanced与S7-1200 PLC的通讯(含PG/PC接口设置避坑)
  • WarcraftHelper:魔兽争霸3终极兼容性与功能增强插件完全指南
  • 3步彻底解决Zotero中文文献乱码问题:茉莉花插件完全指南