selenium 是 web 应用中基于 UI 的自动化测试框架,支持多平台、多浏览器、多语言。

提到 UI 自动化就先了解什么是自动化测试?


目录

1. 自动化测试

2. UI 自动化

2.1 UI 自动化的特点

2.2 UI 自动化测试的优缺点

2.3 UI 自动化测试的使用对象

2.4 UI 自动化测试框架

3. selenium

3.1 selenium IDE

3.1.1 selenium IDE 的使用

3.1.2 selenium IDE 的特点

3.2 webdriver

3.2.1 搭建 selenium 测试环境

3.2.2 webdriver 的工作原理

3.2.3 编写一个简单的脚本


1. 自动化测试

自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转换为机器执行的过程。自动化测试包括 UI 自动化,接口自动化,单元测试自动化。

自动化测试过程:

2. UI 自动化

今天学习的就是 UI 自动化测试,UI自动化测试就是对系统的界面元素进行操作,用脚本实现模拟用户的使用,完成功能的正常和异常测试。

2.1 UI 自动化的特点

  1. 用例维护量大;
  2. 页面相关性强,必须后期项目页面开发完成后介入;
  3. UI 测试适合界面变动较小的项目。

2.2 UI 自动化测试的优缺点

优点:

  1. 降低系统由于变更或者多期开发引起的大量的回归测试的人力投入,减少重复测试的时间,实现快速回归测试;
  2. 创建可靠的测试过程,减少人为错误;
  3. 可以运行更多更繁琐的测试;
  4. 可以更好的利用资源,减少人力资源;
  5. 可以执行一下手工测试无法完成的测试。

缺点:

  1. 自动化测试是工具执行,无法进行主观判断,对一些人眼容易发现的错误无法判断,比如对界面色彩、布局等;
  2. 自动化测试工具本身就是一个产品,在不同的系统平台可能会受到影响,可能会影响测试的结果;
  3. 对于需求更改频繁的系统,不适合自动化测试,因为测试脚本的维护和设计比较困难;
  4. 自动化测试要编写脚本,设计场景,这些对测试人员的要求较高,测试的设计直接影响测试的结果。

2.3 UI 自动化测试的使用对象

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

适合做自动化测试的项目:

  1. 产品型项目:产品型项目新版本是在旧版本上进行改进,功能变动不大的项目,但是项目的新老功能都必须进行回归测试。
  2. 机械并频繁的测试。每次都需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长。比如兼容性测试。

2.4 UI 自动化测试框架

比如 windows 客户端测试的 AutolT, web 测试的 selenium 以及 TestPlant eggPlant,Robot framework等。今天主要学习的就是 selenium。

3. selenium

selenium 的组成:

selenium 1.0:selenium IDE、selenium RC、selenium grid

selenium 2.0:selenium IDE、selenium RC、webdriver、selenium grid

selenium 3.0:selenium IDE、webdriver、selenium grid

3.1 selenium IDE

selenium IDE 是一个用于 selenium 测试的集成开发环境,可以直接在浏览器录制用户的操作,并且能回放,编辑和调试测试脚本。可以使用其录制一个基本的脚本,然后修改逻辑,采用关键字驱动的方式进行脚本开发的。

3.1.1 selenium IDE 的使用

方式一:下载 Firefox 浏览器,安装 selenium IDE 插件。

方式二:使用 Edge 中的 selenium IDE 插件。

Chrome 上也可以,但是大多数电脑都打不开 Chrome 应用商店。

因为本机上有 Edge 浏览器,所以直接使用 Edge 作为示范。

1. 先找到浏览器中的扩展,下载插件selenium IDE。

2. 下载完成后,点击菜单栏中的插件。找到  selenium IDE 插件点击。

3. 新建一个新测试在一个新工程中。

4.在新工程中添加测试用例,创建工程名,添加 url 进行录制脚本。

5.根据关键字进行驱动生成的代码。

target:使用右键检查页面就可以查看页面组建的id。

6.一个完整的自动化测试用例不仅包括 command、target、vaule,还有 assert 断言。通过断言就可以自动对比实际结果和预期结果是否一致。

比如断言文本,断言值等。

7.运行脚本。

8.除了可以通过 selenium 录制脚本,也可以进行手动添加脚本,同样是通过关键字,command、target、vaule 以及 assert。

9.导出脚本。

可以有多种语言,多种框架选择。

ps:如果想要导出 python unittest 框架脚本,可以使用 Katalon 插件。

3.1.2 selenium IDE 的特点

  1. 容易在页面上进行录制;
  2. 能自动通过 id,name 和 xpath 来定位页面元素;
  3. 自动执行 selenium 命令;
  4. 能够进行调试和设置断点;
  5. 录制生成的脚本能够转化成各种语言;
  6. 可以加入断言,用来判断预期和实际结果是否一致。

3.2 webdriver

webdriver 是对浏览器的 API,也就是对浏览器中元素或者浏览器的操作。webdriver 替代了 selenium RC,提高了对浏览器的调度效率。

3.2.1 搭建 selenium 测试环境

1.安装 python 环境

2.安装 selenium

3.安装驱动

具体细节可以百度搜索。

3.2.2 webdriver 的工作原理

webdriver 的实现,依据的是 C/S 模式。工作流程是:

  1. webdriver 启动浏览器后,将目标浏览器绑定到特定的端口,启动后的浏览器则作 webdriver 的 remote server。
  2. 客户端(也就是测试脚本),借助 ComandExecutor 发送HTTP请求给 Server 端。
  3. Server 端需要依赖原生的浏览器组件,转化 Web Service 的命令为浏览器 native 的调用来完成操作。

Server:就是 Remote Server 端,可以是任意的浏览器。
Client:就是我们的测试脚本。

3.2.3 编写一个简单的脚本

# coding = utf-8
# 防止乱码,可加可不加
# 导包
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome()
# 打开百度首页
driver.get("https://www.baidu.com")
# 在百度的输入框中输入selenium,一个控件有若干属性id,name等,百度的输入框id叫 kw
driver.find_element_by_id("kw").send_keys("selenium")
# 点击百度按钮,搜索按钮的id叫 su
driver.find_element_by_id("su").click()
# 关闭浏览器
driver.quit()

UI 自动化测试 —— selenium的简单介绍和使用相关推荐

  1. UI自动化测试+selenium环境安装配置

    一. UI 自动化测试介绍 1 .什么是自动化测试 概念:由程序代替人工进行系统校验的过程 1.1 自动化测试能解决的问题? 1. 解决-回归测试 2. 解决-压力测试 3. 解决-兼容性测试 4. ...

  2. UI自动化测试(Selenium,Unittest,DDT)

    目录 一.导入和使用webdriver驱动 二.使用unittest进行用例管理 1,测试用例 3,使用加载器加载测试用例 4.ddt进行数据驱动 5,使用fixture脚手架 6.selenium的 ...

  3. Selenium自动化测试工具的简单介绍和使用

    Selenium Selenium what:进行web网站的自动化测试,提供了操控网页的功能,包括向网页中put和从网页中get how:提供了库,针对不同语言提供了不同语言的库 一.自动化原理 三 ...

  4. selenium的简单介绍

    1.Selenium介绍: Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在 ...

  5. 自动化测试 selenium工具集介绍以及常用的Webdriver API

    selenium 什么是selenium? selenium1.0 selenium 2.0 webdriver的原理 selenium 3.0 安装python和selenuim 环境安装注意事项 ...

  6. selenium 控制ie_Python爬虫---Selenium的简单介绍

    译者的话 有许多网页使用Ajax获取数据的,但Ajax接口有许多加密参数,因此我们难以直接找出其规律,也很难直接分析Ajax来抓取. 为了解决这个问题,我们可以使用模拟浏览器运行的方式,来做到在浏览器 ...

  7. python自动化测试篇一 简单介绍

    一.什么是 Python Python 是一门编程语言,关于编程语言我们后面再详细讲.首先我们思考,为什么我们要学习 Python 1.为什么要学习 Python 1. 自动化 很多时候,虽然可以通过 ...

  8. Python+uiautomator2手机UI自动化测试实战 -- 2. 用法介绍

    设备连接方法,有两种 1. 通过WiFi,假设设备IP 192.168.5.4和您的PC在同一网络中 import uiautomator2 as u2d = u2.connect('192.168. ...

  9. UI自动化测试-Selenium的使用

    文章目录 1. 环境搭建 1.1 入门示例 1.2 元素操作常用方法 1.3 浏览器操作常用方法 1.4 获取元素信息常用方法 1.5 鼠标操作常用方法 1.6 键盘操作常用方法 1.7 下拉选择框操 ...

最新文章

  1. 《UX最佳实践:提高用户体验影响力的艺术 》一3.6 总结
  2. 【pytorch】Metrics的工作原理
  3. numpy.where用法详解,对2维数组判断解释的比较清楚的
  4. 学计算机一般要off,必须要学的电脑知识
  5. js流程控制题——如何实现一个LazyMan
  6. P1067 多项式输出(模拟)
  7. mysql锿法_MySQL基本用法
  8. 用Navicat管理MySQL数据库
  9. mysql通过订单量排序_mysql-关于PHP中订单按照从大到小的顺序排序的思路.
  10. 车道线检测的学习笔记
  11. c#中base64加密解密
  12. java qq机器人_简单几步教你如何用Java快速制作一个QQ机器人
  13. python多项式求导_OO博客作业1:多项式求导作业总结
  14. centos7 安装最新rabbitmq,并设置开机自启
  15. oracle是什么软件可以卸载吗,卸载Oracle软件
  16. 孝经白话:广要道章第十二
  17. java代码餐馆管理系统_餐饮管理系统(包括数据库,源代码)
  18. 大数据常见错误解决方案
  19. 支持Adobe Photoshop CC 201720182019 的Coolorus 2.5.14 色环插件
  20. 桌面怎样同步计算机,电脑桌面记事本如何同步到手机上

热门文章

  1. 使用jsqr解析二维码
  2. Ubuntu18安装nvidia驱动QuadroP600
  3. 知乎热榜:如何看待 2021 年秋招算法岗灰飞烟灭?
  4. 计算机英语4级有什么用,计算机等级考试四级究竟有什么用
  5. matlab gui 按钮背景,Matlab gui教程0x8–自定义GUI背景图案和按钮图标
  6. 抖音怎样导流到微信?抖音跳转页引导加微信的设置
  7. 苹果7支持快充吗_苹果神操作:2020款新iPad配20W充电器 但不支持PD快充-苹果,iPad ——快科技(驱动之家旗下媒体)-...
  8. 30句必备餐饮英语口语交流无障碍
  9. MySQL的索引结构为什么是B+树?
  10. html网页截图功能支持svg图片保存