【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)

本系列文章md笔记(已分享)主要讨论Web自动化测试相关知识。了解什么是自动化,理解什么是自动化测试以及为什么要使用自动化测试。具体包含:WebDriver的基本操作,WebDriver的鼠标、键盘操作,下拉选择框、警告框、滚动条操作,frame表单切换、多窗口切换,掌握WebDriver屏幕截图方法。以及自动化测试-高级篇,掌握UnitTest框架的基础使用方法,掌握断言assertEqual、assertIn方法,以及掌握如何生成HTML测试报告方法和基本布尔型断言。

全套笔记和代码自取在个人博客: https://gitee.com/yinuo112/Devops/tree/master/测试/web自动化/1.md

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


共 5 章,14 子模块

Web自动化测试

目标

1. 了解什么是自动化
2. 理解什么是自动化测试
3. 为什么要使用自动化测试

1. 什么是自动化?

概念:由机器设备代替人为自动完成指定目标的过程

1.1 优点:

1. 减少人工劳动力
2. 工作效率提高
3. 产品规格统一标准
4. 规模化(批量生产)

2. 什么是自动化测试

概念:让程序代替人为去验证程序功能的过程

2.1 为什么要进行自动化测试?

1. 解决-回归测试
2. 解决-压力测试
3. 解决-兼容性测试
4. 提高测试效率,保证产品质量

回归测试:项目在发新版本之后对项目之前的功能进行验证;
压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
兼容性测试:不同浏览器(IE、Firefox、Chrome)等等

2.2 自动化测试在什么阶段开始?

功能测试完毕(手工测试)

手工测试:就是由人去一个一个输入用例,然后观察结果;
自动化测试所属分类
1. 黑盒测试(功能测试)
2. 灰盒测试(接口测试)
3. 白盒测试(单元测试)

提示:Web自动化测试属于黑盒测试(功能测试)
优点
1. 较少的时间内运行更多的测试用例;
2. 自动化脚本可重复运行;
3. 减少人为的错误;
4. 测试数据存储
缺点
1. 不能取代手工测试;
2. 手工测试比自动化测试发现的缺陷更多;
3. 测试人员技能要求;

误区:    
    1). 自动化测试完全替代手工测试
    2). 自动化测试一定比手工测试厉害
    3). 自动化可以发掘更多的BUG
为什么要进行自动化测试-总结
1. 自动化测试能代替人为解决繁琐的回归测试验证问题
2. 自动化测试脚本设计一次能重复运行
3. 模拟多用户操作
4. 提高测试效率

提示:当然自动化脚本带来的好处不止以上几条,但对于刚接触自动化,了解以上几点足够了;

思考

我们理解了为什么要学习自动化测试,那么在软件测试领域中,自动化测试又有哪些分类呢?

3. 自动化测试分类

1. Web-(UI)自动化测试(本阶段学习)
2. 接口-自动化测试
3. 移动(app)-自动化测试
4. 单元测试-自动化测试

目标

1. 知道什么是自动化测试并能说出优缺点
2. 了解什么是webdriver,能够搭建基于python的webdriver环境
3. 掌握driver对象定位标签元素获取标签对象的方法
4. 了解driver对象常用的浏览器操作方法
5. 掌握action对象等装的鼠标操作 方法
6. 了解Keys中的键盘操作方法 
7. 掌握下拉选择框的操作 方法
8. 掌握警告框处理
9. 了解使用js调用window句柄拖动滚动条
10. 了解显示等待和隐式等待的区别
11. 了解切换表单的方法
12. 知道截图的操作
13. 掌握unittest的四要素使用方法

Web自动化测试

目标

1. 了解什么是Web自动化测试
2. 了解Web自动化测试常用工具

1. 什么是Web自动化测试?

概念:让程序代替人为自动验证Web项目功能的过程

2. 什么项目适合做自动化测试?

1.需求变动不频繁
2.项目周期长
3.项目需要回归测试

3. 如何进行自动化测试?(主流测试-工具)

1. QTP(收费)
        QTP是商业的功能测试工具,收费,支持web,桌面自动化测试。
2. Selenium(开源)【本阶段学习】
        Selenium是开源的web自动测试工具,免费,主要做功能测试。
3. Jmeter(开源、Web、接口、性能, 接口测试使用)
        Jmeter是由Apache公司使用Java平台开发的一款测试工具,支持(Web、接口测试、性能测试)
        提示:Web测试在通信层(无UI界面)
5. Loadrunner(收费、Web、性能)
        Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试
6. Robot framework
        Robot Framework是一个基于Python可扩展地(关键字驱动)的测试自动化框架;

3.1 主流工具-汇结:

Web自动化测试:selenium、robot framework
    App端自动化测试:Appium、Monkeyrunner、UIautomation
    PC客户端(win32)自动化测试:QTP
    接口自动化测试:Jmeter、Postman、httpUnit、RESTClient
    云测平台:Testin Testbird
    性能测试:Jmeter、LoadRunner

4. 什么是Selenium?

概念: Selenium是一个用于Web应用程序测试的工具;中文的意思(硒)

4.1 Selenium特点

1. 开源软件:源代码开放可以根据需要来增加工具的某些功能
2. 跨平台:linux 、windows 、mac
3. 核心功能:就是可以在多个浏览器上进行自动化测试
4. 多语言:Java、Python、C#、JavaScript、Ruby等
5. 成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用
6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能

4.2 Selenium家族(发展史) 【了解】

senium

重点:    
    1. SeleniumIDE
    2. Selenium2.0(WebDriver)

WebDriver概述、 环境搭建

目标

1. 了解WebDriver概述
2. WebDriver环境搭建

1. 什么是WebDriver?

1. Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具;
2. 它提供了一套友好的API;
3. Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动;

说明:
    API:应用编程接口说明(WebDriver类库内封装非常多的方法,要使用这些方法,就需要友好的调用命名规则)

1.1 WebDriverAPI 支持的浏览器

1. Firefox (FirefoxDriver)【推荐-本阶段学习使用】
2. IE(InternetExplorerDriver)
3. Opera(OperaDriver)
4. Chrome (ChromeDriver)
5. safari(SafariDriver)
6. HtmlUnit (HtmlUnit Driver)

提示:
    Firefox、Chrome:对元素定位和操作有良好的支持,同时对JavaScript支持也非常好。
    IE:只能在windows平台运行,所有浏览器中运行速度最慢
    HtmlUnit:无GUI(界面)运行,运行速度最快;

推荐原因:
    1. Selenium IDE
    2. FireBug
    3. 对WebDriver API支持良好

1.2 WebDriverAPI 支持的开发语言

官网文档:https://docs.seleniumhq.org/docs/03_webdriver.jsp


1. Java
2. Python
3. PHP
4. JavaScript
5. Perl
6. Ruby
7. C# ```


  
  
## 2. 环境搭建
  
  



  
  
### 2.1 为什么要环境搭建?
  
  


```python
1. 盖房子
2. MP3
3. 开发语言

2.2 基于Python环境搭建

1. Windows系统
2. Python 3.5(以上版本)
3. 安装selenium包
4. 浏览器
5. 安装PyCharm

说明:Python3 和PyCharm咱们上阶段课已使用,在这里不在重复;
2.3 selenium 安装、卸载、查看命令
安装:pip install selenium==2.48.0
      1). pip:通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。 
      2). install: 安装命令
      3). selenium==2.48.0: 指定安装selenium2.48.0版本(如果不指定版本默认为最新版本)
卸载:pip uninstall selenium
查看:pip show selenium

注意: 在安装selenium时,前提是Python3.5以上版本安装完毕且能正常运行

2.4 火狐浏览器【推荐】
1. FireFox 48以上版本
        Selenium 3.X +FireFox驱动——geckodriver
2. Firefox 48 以下版本
        Selenium2.X 内置驱动
2.5 谷歌浏览器
selenium2.x/3.x +Chrome驱动

chromewebdriver

2.6 浏览器-总结

各个驱动下载地址: http://www.seleniumhq.org/download/

1. 浏览器的版本和驱动版本要一致! 
        (如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!)
2. 浏览器驱动下载好后需要添加Path环境便令中,或者直接放到Python安装目录,因为Python以添加到Path中
3. 推荐使用火狐浏览器(2435)

3. 总结

1. WebDriver是什么?
2. 为什么要搭建环境?
3. selenium 安装、卸载、查看命令
4. 为什么推荐火狐浏览器和火狐48版本以下

学习目标

掌握driver对象定位标签元素获取标签对象的方法

了解driver对象常用的浏览器操作方法







#### 2.5 谷歌浏览器

  


```python
selenium2.x/3.x +Chrome驱动

[外链图片转存中…(img-Qv97FnMj-1706958678520)]

2.6 浏览器-总结

各个驱动下载地址: http://www.seleniumhq.org/download/

1. 浏览器的版本和驱动版本要一致! 
        (如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!)
2. 浏览器驱动下载好后需要添加Path环境便令中,或者直接放到Python安装目录,因为Python以添加到Path中
3. 推荐使用火狐浏览器(2435)

3. 总结

1. WebDriver是什么?
2. 为什么要搭建环境?
3. selenium 安装、卸载、查看命令
4. 为什么推荐火狐浏览器和火狐48版本以下

学习目标

掌握driver对象定位标签元素获取标签对象的方法

了解driver对象常用的浏览器操作方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/370826.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024.2.4日总结(小程序开发1)

小程序开发和普通网页开发的区别 运行环境不同 网页运行在浏览器环境中,小程序运行在微信环境中 API不同 由于运行的环境不同,所以小程序中无法调用DCM和BOM的API,但是可以调用微信环境提供的各种API,如:地理定位&…

Python 数据分析(PYDA)第三版(一)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 关于开放版本 第 3 版的《Python 数据分析》现在作为“开放获取”HTML 版本在此网站wesmckinney.com/book上提供,除了通常的印刷和电子书格式。该版本最初于 2022 年…

微服务基础(持续更新中)

安装SSH以及虚拟机,Centos具体步骤见 https://b11et3un53m.feishu.cn/wiki/FJAnwOhpIihMkLkOKQocdWZ7nUc

vulhub中Adminer ElasticSearch 和 ClickHouse 错误页面SSRF漏洞复现(CVE-2021-21311)

Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其4.0.0到4.7.9版本之间,连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞&#xff08…

202416读书笔记|《总有人会拥抱满身带刺的你》——今天我请客,想请你快乐

202416读书笔记|《总有人会拥抱满身带刺的你》——今天我请客,想请你快乐 这是一篇暖萌轻松的绘本推荐记录书评,《总有人会拥抱满身带刺的你》纳米著,《今天我请客,想请你快乐》燕七著,都还不错,截取摘录了…

从搜索引擎到答案引擎:LLM驱动的变革

在过去的几周里,我一直在思考和起草这篇文章,认为谷歌搜索正处于被颠覆的边缘,它实际上可能会影响 SEO 作为业务牵引渠道的可行性。 考虑到谷歌二十多年来的完全统治地位,以及任何竞争对手都完全无力削弱它,坦率地说&…

解析 JavaScript 异步编程:从回调地狱到 Promise 和 Async/Await

在现代的JavaScript开发中,处理异步任务变得愈发重要,因为它们允许我们在等待I/O、网络请求或定时器等事件时继续执行其他任务,以提高程序的性能和响应能力。本文将介绍JavaScript中异步编程的演变过程,从最初的回调地狱到后来的P…

【数据结构与算法】(9)基础数据结构 之 阻塞队列的单锁实现、双锁实现详细代码示例讲解

目录 2.8 阻塞队列1) 单锁实现2) 双锁实现 2.8 阻塞队列 之前的队列在很多场景下都不能很好地工作,例如 大部分场景要求分离向队列放入(生产者)、从队列拿出(消费者)两个角色、它们得由不同的线程来担当,…

使用绿联私有云Docker搭建自动化实时网页监控工具,实现降价提醒/RSS监控等

使用绿联私有云Docker搭建自动化实时网页监控工具,实现降价提醒/RSS监控等 哈喽小伙伴们好,我是Stark-C~ 之前老是有小伙伴们在评论区说我分享的Docker容器都是通过Docker run命令部署的,能不能照顾下像绿联私有云这种新势力NAS的新手用户&…

C# CAD界面-自定义工具栏(三)

运行环境 vs2022 c# cad2016 调试成功 一、引用 二、开发代码进行详细的说明 初始化与获取AutoCAD核心对象: Database db HostApplicationServices.WorkingDatabase;:这行代码获取当前工作中的AutoCAD数据库对象。在AutoCAD中,所有图形数…

【Git】01 Git介绍与安装

文章目录 一、版本控制系统二、Git三、Windows安装Git3.1 下载Git3.2 安装3.3 检查 四、Linux安装Git4.1 YUM安装4.2 源码安装 五、配置Git5.1 配置用户名和邮箱5.2 配置级别5.3 查看配置 六、总结 一、版本控制系统 版本控制系统,Version Control System&#xff…

【消息队列】kafka整理

kafka整理 整理kafka基本知识供回顾。

基于NSGA-II的深度迁移学习

深度迁移学习 迁移学习是一种机器学习技术,它允许一个预训练的模型被用作起点,在此基础上进行微调以适应新的任务或数据。其核心思想是利用从一个任务中学到的知识来帮助解决另一个相关的任务,即使这两个任务的数据分布不完全相同。这种方法…

vulnhub靶场之Thales

一.环境搭建 1.靶场描述 Description : Open your eyes and change your perspective includes 2 flags:user.txt and root.txt. Telegram: machineboy141 (for any hint) This works better with VIrtualBox rathe than VMware 2.靶场地址 https://www.vulnhub.com/entry/t…

年假作业3.0

1、选择题 BCDAA 2、填空题 15,27 15 11,10,13,12 3、改错题 1.缺少了要使用的命名空间&#xff0c;应在加上#include <iostream>的下一行添加using namespace std&#xff0c;void main(){}报错&#xff0c;C语言中main函数必须返回int改为&#xff1a;int main(…

海康IPC摄像机接入国标平台,发现一直不在线(离线)的处理方式

目 录 一、问题 二、问题分析 &#xff08;一&#xff09;常见设备离线问题的原因 &#xff08;二&#xff09;原因分析 三、问题查处 &#xff08;一&#xff09;设备端排查故障&#xff08;设备端自查&#xff09; 1、检查GB28181参数配置是否有误 2、…

vulhub中Apache APISIX Dashboard API权限绕过导致RCE(CVE-2021-45232)

Apache APISIX是一个动态、实时、高性能API网关&#xff0c;而Apache APISIX Dashboard是一个配套的前端面板。 Apache APISIX Dashboard 2.10.1版本前存在两个API/apisix/admin/migrate/export和/apisix/admin/migrate/import&#xff0c;他们没有经过droplet框架的权限验证&…

电动汽车充放电V2G模型(matlab代码)

目录 1 主要内容 1.1 模型背景 1.2 目标函数 1.3 约束条件 2 部分代码 3 效果图 4 下载链接 1 主要内容 本程序主要建立电动汽车充放电V2G模型&#xff0c;采用粒子群算法&#xff0c;在保证电动汽车用户出行需求的前提下&#xff0c;为了使工作区域电动汽车尽可能多的消…

PyTorch 2.2 中文官方教程(十四)

参数化教程 原文&#xff1a; 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 作者&#xff1a;Mario Lezcano 注意 点击这里下载完整示例代码 在本教程中&#xff0c;您将学习如何实现并使用此模式来对模型进行约束。这样做就像编写自己的nn.Module一样容易。 对深…

c#矩阵行列式计算//线程同步

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 实现矩阵行列式计算 {internal class Program{static void Main(string[] args){//定义矩阵Console.WriteLine("矩阵是&#xff1a;&quo…