IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> day01_UI自动化测试入门 -> 正文阅读

[开发测试]day01_UI自动化测试入门

由程序代替人工进行系统校验的过程就是是自动化测试。常见的自动化测试有:web自动化测试丶移动app自动化测试丶单元自动化测试等等....

自动化测试能解决的问题

  • 回归测试 (冒烟测试) :针对之前老的功能进行测试 通过自动化的代码来实现丶针对上一个版本的问题的回归
  • 兼容性测试: web实例化不同的浏览器驱动相当于对不同的浏览器进行操作,从而解决浏览器的兼容性测试问题
  • 性能测试: 通过一些工具来模拟多个用户实现并发操作 ,提高工作效率,保障产品质量

自动化测试的优点

  • 能在较少的时间内执行更多的测试用例
  • 能够减少人为的错误
  • 能够克服手工的局限性,
  • 自动化测试可以重复执行

自动化则试的误区

  • 自动化测试可以完全代替手工测试,错误。理解: 针针某些功能(图片、页 面架构)也是没有办法通过自动化来实现
  • 自动化测试一定比手工测试厉害,错误理解:在某些行业,比如金融行业更看重业务的积累
  • 自动化测试可以发现更多的BUG ,错误。理解:因为自动化测试主要用来做回归测试
  • 自动化测试适用于所有的功能?,错误。理解 页面的架构、图片、文字,用 户体验等等一些是无法使用自动化实现的。

自动化测试分类

  • web自动化测试:web系统
  • 移动app自动化:app应用
  • 接口自动化 接口:用来给web或者app前端传输数据用的
  • 单元测试-自动化测试 针对开发人员的代码进行测试。 是由开发自己来做的
  • 安全测试(渗透测试) 针对系统、数据、应用等安全方面进行测试
  • 桌面应用自动化测试 针对windows的桌面应用程序进行自动化测试
  • 嵌入式设备自动化测试

UI(user interface)通过对web应用以及app应用进行自动化 测试的过程就是UI自动化测试

什么项目适合做 ui 自动化测试
  • 需求变动不频繁 前端代码变更维护不方便
  • 项目周期长 项目短,上线之后不需要再去测试
  • 项目需要回归测试 不用回归测试的也不需要写自动化

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

手工测试完成之后才做自动化测试我们通过手工测试能够清楚的知道自动化测试的步骤以及结果才能编写自动化测试代码UI自动化测试所属分类为黑盒测试。例如:

  • V1 通过手工测试完成之后,有十个功能。
  • 针对V1版本的十个功能,进行自动化的代码编写
  • V2 增加了十个功能(总共有20个功能), v2版本的测试过程当,新增的10个功能手工测试。针对老的10个功能就可以通过自动 化来进行回归测试。
主流的 web 自动化工具
  • QTP 由惠普公司开发的一款自动化工具,支持web、桌面的 自动化测试。 收费的商用工具。
  • selenium 主要用来做web自动化测试的,开源的免费的工 具。
  • root framework 自动化测试平台。通过它可以实现web自动 化测试、接口自动化测试、桌面的自动化测试。

为什么要学习selenium?

  • 开源软件: 源代码开放,但是不一定免费
  • 跨平台: 平台指操作系统。 linuxwindows mac操作系统
  • 支持多种浏览器:fifirefoxchrome ieedgeopera、 safari
  • 支持多语言:python\java\C#\js\Ruby\PHP
  • 成熟稳定功能强大:被大公司使用。google、华为、百度、腾 讯

selenium环境搭建

selenium 工作原理如下图所示:
? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

步骤如下:
  1. 安装python解释器和pycharm
  2. 浏览器安装及浏览器驱动安装:需要注意浏览器与浏览器驱动的版本, 不同的浏览器有不同的浏览器驱动,而且不同的版本也有不同的浏览器驱动。
  3. 在线安装方式: dos命令行中输入: pip install selenium
  4. 如何确认selenium 安装完成:可以通过 pip show selenium 进 行查看

浏览器驱动安装细说:

  1. 安装浏览器驱动之前,一定要知道自己浏览器的版本。
  2. 通过https://npm.taobao.org/mirrors/chromedriver/ 获取对应的浏览器驱动
  3. 解压浏览器驱动文件,并将驱动文件复制到python的根目录就 行了。

元素定位

html页面由标签构成,标签的基本格式如下:

什么是元素?

  • 元素: 由标签头+标签尾+标签头和标签尾包括的文本内容
  • 元素的信息就是指元素的标签名以及元素的属性
  • 元素的层级结构就是指元素之间相互嵌套的层级结构

元素定位最终就是通过元素的信息或者元素的层级结构来进行元素定位。

浏览器开发者工具

浏览器开发者工具就是给专业的web应用和网站开发人员使用的工具。 包含了对HTML查看和编 辑、Javascript控制台、网络状况监视等功能,是开发JavaScriptCSSHTMLAjax的得力助 手。作用:快速定位元素,查看元素信息。浏览器开发者工作不需要安装,浏览器自带.。浏览器开发者工具的启动:

  • 直接按F12 不区分浏览器
  • 通过右键的方式来启动浏览器开发者工具?

点击浏览器开发者工具左上角的元素查看器按钮,再点击想要查看的元素。

元素定位方式
Selenium 提供了 八种定位元素方式 :id 丶name 丶class_name 丶tag_name 丶link_text 丶partial_link_text 丶XPath 丶CSS。

ID定位

  • 前提:元素要有ID属性
  • 通过元素的ID属性值来进行元素定位 在html标准规范中 ID值 是唯一的。
  • 定位方法:find_element_by_id(id) ,?id参数表示的是id的属 性值

案例演示:

打开注册A.html页面,完成以下操作

  1. 使用id定位,输入用户名:admin
  2. 使用id定位,输入密码:123456
  3. 3秒后关闭浏览器窗口

代码实现

# 导入selenium包 和 time包
from selenium import webdriver
import time

# 实例化浏览器驱动对象
driver = webdriver.Chrome()

# 打开测试网站,get参数是要测试的url
driver.get("https://ssl.zc.qq.com/v3/index-chs.html")

# 通过ID定位到用户名输入框并在用户名输入框中输入admin
driver.find_element_by_id("nickname").send_keys("admin")

# 通过ID定位到密码输入框并在密码输入框中输入wrg123456
driver.find_element_by_id("password").send_keys("wrg123456")

# 等待3s
time.sleep(3)

# 退出浏览器
driver.quit()
name定位
  • 前提:元素要有name属性
  • 通过元素的name属性值为进行元素定位 name属性值 在 HTML页面中,是可以重复的。如果重复,则定位到第一个。
  • 定位方法:find_element_by_name(name)? # name 参数表示 的是name的属性值
# 导入selenium包 和 time包
from selenium import webdriver
import time
# 实例化浏览器驱动对象
driver = webdriver.Chrome()

# 打开测试网站,get参数是要测试的url
driver.get("file:///C:/Users/Administrator/PycharmProjects/Day01selenium/Test.html")

# 通过name定位到用户名输入框并在用户名输入框中输入admin
driver.find_element_by_name("email").send_keys("admin")

# 通过ID定位到密码输入框并在密码输入框中输入wrg123456
driver.find_element_by_name("password").send_keys(123456)

# 等待3s
time.sleep(3)

# 退出浏览器
driver.quit()
class_name 定位
  • 前提:元素必须要有class属性
  • 通过元素的class属性值进行元素定位 class属性值是可重复的。如果重复,则定位到第一个。
  • 定位方法: find_element_by_class_name(class_name) # class_name参数表示的是class的其中一个属性值
# 导入selenium包 和 time包
from selenium import webdriver
import time
# 实例化浏览器驱动对象
driver = webdriver.Chrome()

# 打开测试网站,get参数是要测试的url
driver.get("file:///C:/Users/Administrator/PycharmProjects/Day01selenium/Test.html")

# 通过name定位到用户名输入框并在用户名输入框中输入admin
driver.find_element_by_class_name("demo01").send_keys("admin")

# 通过ID定位到密码输入框并在密码输入框中输入123456
driver.find_element_by_class_name("demo02").send_keys(123456)

# 等待3s
time.sleep(3)

# 退出浏览器
driver.quit()
tag_name定位
  • 通过元素的标签名称进行定位, 在同一个html页面当中,相同 标签元素会有很多。 这种定位元素的方式不建议大家在工作当中使用。
  • 定位方法: find_element_by_tag_name(tag_name)? # tag_name表示的是元素的标签名称。 如果有重复的元素,定位到的元素默认都是第一个元素

ink_text定位

  • 通过超链接的全部文本信息进行元素定位 ,主要用来定位a标签
  • 定位方法: find_element_by_link_text(link_text) # link_text参数代表的是a标签的全部文本内容。

partial_link_text定位

  • 通过超链接的局部文本信息进行元素定位,主要用来定位a标签
  • 定位方法:find_element_by_partial_link_text(partial_link_text)? # partial_link_text表示的是a标签 的局部文本内容
定位一组元素
  • 对于上面6种定位方法都有定位一组元素的方法,例如:find_elements_by_tag_name(tag_name) 获取所有标签名称为tag_name的元素
  • 定位一组元素返回的值是一个列表
  • 可以通过下标来使用列表中的元素
  • 下标是从0开始。
# 导入selenium包 和 time包
from selenium import webdriver
import time
# 实例化浏览器驱动对象
driver = webdriver.Chrome()

# 打开测试网站,get参数是要测试的url
driver.get("file:///C:/Users/Administrator/PycharmProjects/Day01selenium/Test.html")

# 通过name定位到用户名输入框并在用户名输入框中输入admin
elements = driver.find_elements_by_tag_name("input")
# 第3个元素 输入123456
elements[2].send_keys("123456")

# 等待3s
time.sleep(3)

# 退出浏览器
driver.quit()

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 00:07:16  更:2021-07-07 00:07:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 10:57:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码