news 2026/2/3 14:56:12

Web自动化测试知识总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Web自动化测试知识总结

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

一、自动化测试基本介绍

1、自动化测试概述:

什么是自动化测试?一般说来所有能替代人工测试的方式都属于自动化测试,即通过工具和脚本来模拟人执行用例的过程。

2、自动化测试的作用

  • 减少软件测试时间与成本改进软件质量
  • 通过扩大测试覆盖率加强测试工作
  • 进行手动测试难以完成的、需要更高的成本、更长的计划、更高的质量的任务
  • 迭代更新较少,但仍需测试人员维护的,通过自动化解放人力

3、自动化测试的主要应用:

  • 冒烟测试(主业务流程)
  • 回归测试
  • 性能测试
  • 兼容性测试 (一套测试脚本,多个平台执行)
  • 完成手动测试无法完成的工作下班后无人值守测试

4、web自动化实现的目标:

(一)原则:

  • 编写自动化测试用例库,根据用例库里面的用例编写测试用例。
  • 提高测试效率,降低测试成本
  • 重复性较强的用例用自动化实现
  • 快速的回归测试,提高版本发布的速度和质量
  • 功能覆盖率达到要求
  • 测试具有移植性和可重复性

(二)实施策略(持续集成):

  • 框架的选择
  • 环境搭建
  • case编写:提取公共模块、提取公共参数、功能逻辑熟悉
  • log输出
  • 报告输出
  • Jenkins持续集成:定时集成、发送邮件

二、Web自动化工具

web自动化工具的选择:

市场上自动化工具分为开源和和商用付费两种,下面提供两种类型主流的selenium和QTP对比

最终选择:selenium+IDEA(java+maven+testng)+jenkins

三、Selenium介绍

(一)selenium 测试原理:

  • 在自动化测试过程中,存在三部分组件:客户端脚本+浏览器驱动+浏览器终端。
  • 驱动文件,以geckodriver.exe为例,这个可执行的驱动文件启动后,相当于一个暴露了一系列接口的服务器,监听某一端口。
  • 客户端的操作(访问页面,定位元素,输入数据,点击按钮等)都是封装成了接口请求(eg:/session/xx/yy),然后提交到驱动服务器。
  • 驱动服务器接收到客户端的请求后,再跟终端浏览器交互。
  • 终端浏览器做出相应操作(操作元素、甚至浏览器本身:截屏、窗口、安装插件证书)。

(二)selenium 工具套件简单介绍

  • Selenium WebDriver:面向对象API。
  • Selenium IDE(集成开发环境):FireFox插件,用于提供图形化界面来录制和回放脚本,插件只是用来模拟原型的工具,并不希望测试工程师使用此工具用来运行大批量的测试脚本。此插件需要使用第三方的javaScript代码库才能支持循坏和条件判断
  • Selenium-Grid可以在多个测试环境以并发的方式执行测试脚本,实现脚本的并发执行,缩短大量测试脚本的执行时间。

四、Selenium WebDriver常用API

(一) 浏览器操作

  • 加载浏览器驱动,打开页面:

driver = new FirefoxDriver();
String baseUrl = "http://oa2.midairen.com/index.html";
driver.get(baseUrl);

  • 关闭浏览器:

driver.close();//关闭浏览器

  • 最大化窗口:

driver.manage().window().maximize();

  • 后退到前一页:

driver.navigate().back();

  • 前进到后一页:

driver.navigate().forward();

  • 刷新页面:

driver.navigate().refresh();

  • 获得title并打印

String title =driver.getTitle();

  • 杀掉Windows的浏览器进程
  • 当前浏览器窗口截屏(比较截屏)
  • 操作浏览器的cookie

(二)页面操作

  • 获取页面的源代码
  • 获取页面的URL地址
  • 在输入框中清除原有的文字
  • 在输入框中输入指定内容
  • 单击按钮
  • 双击某个元素
  • 操作单选下拉列表
  • 操作单选框
  • 操作复选框
  • 检查元素文本内容是否出现
  • 执行JS脚本
  • 操作iframe中的页面元素
  • 操作富文本

(三)元素定位的方法

五、TestNG

(一)TestNG基本介绍

TestNG是Java中的一个测试框架,是一个目前很流行实用的单元测试框架,有完善的用例管理模块,配合Maven能够很方便管理依赖第三方插件。使用TestNG可以做功能、接口、单元、集成的自动化测试,最常见的是结合selenium做功能自动化测试,它使用Java注释去写测试方法。

测试人员一般用TestNG来写自动化测试,开发人员一般用Junit写单元测试,TestNG适合测试人员使用的主要原因:TestNG更适合复杂的集成测试。

(二)testNG的特点

  • 注解
  • TestNG使用Java和面向对象的功能
  • 支持综合类测试(例如,默认情况下,没有必要创建一个新的测试来作为每个测试方法的类的实例)
  • 独立的编译时间测试代码运行时配置/数据信息
  • 灵活的运行时配置
  • 支持依赖测试方法,并行测试,负载测试,局部故障
  • 灵活的插件API
  • 支持多线程测试

(三)注解

TestNG常用的测试用例组织结构由test Suite-test-测试class-测试方法。Test suite有一个或者多个test组成,test由一个或者多个测试class组成,一个测试class有一个或者多个测试方法组成。运用不同层级的测试用例时,课通过不同注解实现测试前的初始化工作,测试用例执行工作和测试后的清理工作。

常用注解如下:

(四)依赖测试

某些复杂的测试场景需要按照某个特定的顺序执行测试用例,一以此保证某个特定顺序执行测试用例,此测试场景运行需求称为依赖测试。通过依赖测试,不同的测试方法间共享数据和程序状态。使用dependsOnMethods参数 实现。

@Test(dependsOnMethods = {"testcase1"})

(五)断言

在执行自动化测试用例的时候,我们需要自动判断用例执行完成后获得的输出值是否与预期值一致,这个时候就需要用到断言功能。TestNG中提供了一个Assert类:org.testng.AsserTestNG中提供了一个Assert类,org.testng.Assert类是作为放置一系列断言的静态方法的容器。

Assert.assertTrue(select1.isDisplayed());//断言判断select1元素是否在页面存在

常用的断言:

  • assertTrue:判断是否为true。
  • AssertFALSE:判断是否为FALSE。
  • AssertNull:判断是否为空
  • AssertNoNull:判断是否不为空
  • AssetEquals:判断是否相等
  • AssertNoEquals:判断是否不相等

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/31 13:05:49

收藏!运维人的至暗时刻已至?AI才是破局密钥

这绝非制造焦虑,而是当下运维圈的真实写照。身边不少深耕运维多年的同行都在吐槽:35岁职业天花板提前降临、企业岗位持续缩减、新人薪资倒挂老员工已成常态……种种困境叠加,让不少人开始怀疑:运维岗真的要走向没落了吗&#xff1…

作者头像 李华
网站建设 2026/2/1 19:44:02

基于关键链法的汽车传感器项目进度优化【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅ 成品或定制,查看文章底部微信二维码(1)汽车传感器项目开发背景与进度管理挑战在汽车产业向电动化、智能化、网联化方…

作者头像 李华
网站建设 2026/2/2 4:11:26

导师推荐9个一键生成论文工具,自考学生轻松搞定论文格式规范!

导师推荐9个一键生成论文工具,自考学生轻松搞定论文格式规范! 自考论文写作的福音:AI 工具如何改变你的学习节奏 在自考过程中,论文写作一直是许多学生最头疼的部分。无论是格式规范、内容逻辑还是语言表达,都需要投…

作者头像 李华
网站建设 2026/1/30 18:31:00

收藏!普通人也能入局AI的黄金岗位:大模型训练师入门指南

近日,有网友爆料前vivo产品经理宋xx离职后的职业轨迹引发行业关注——从vivo离开后,他曾短暂加入理想汽车,最终选择躬身入局AI硬件创业赛道。这一动态再次将大众目光聚焦到AI领域,也让不少想跨界AI的程序员、职场小白好奇&#xf…

作者头像 李华
网站建设 2026/2/1 8:24:34

突破单线程瓶颈:多进程并发服务器的设计与实现

在网络编程中,单线程服务器最致命的问题在于其“阻塞性”——当服务器正在与一个客户端通信时,其他所有连接请求都会被拒之门外。 为了实现真正的并发,我们需要引入多进程模型。本文将深入探讨如何利用 Linux 的进程创建机制,构建一个高性能的并发服务器。 一、 多进程并发…

作者头像 李华
网站建设 2026/2/3 4:39:36

基于Simulink的DFIG定子电压定向控制策略仿真

目录 手把手教你学Simulink 一、引言:为什么DFIG要采用“定子电压定向”? 二、理论基础:定子电压定向原理 1. 坐标系定义 2. DFIG 功率表达式(SVO 下) 3. 转子电压方程(用于电流环设计) …

作者头像 李华