01 Selenium简介

Selenium能做什么?

Selenium是基于HTML代码的前端网页自动化工具。能自动点击、等待、输入、获取网页元素信息、生成测试报告等功能。如果网站基于Rest协议,则无法获得网页源码。或者网页是纯JavaScript或者Flash动画,则无法定位元素,这些情况都不能使用Selenium进行自动化。

什么时候使用Selenium?

以下10点满足3点即可使用selenium。

  1. SRS明确且稳定,不会频繁变动。
  2. 自动化使用频繁,比如自动化每日构建daily测试。
  3. 回归测试工作量巨大。
  4. 软件界面稳定,变动少。
  5. 多平台同步测试。
  6. 软件维护周期长。
  7. 项目进度压力小,不赶着上线。
  8. 网站开发得较为规范。
  9. 测试平台太多。
  10. 测试人员编程能力较强。

Selenium

Selenium 1.0

Selenium 1.0 = Selenium IDE +Selenium Grid + Selenium RC

  1. Selenium IDE:
    是火狐浏览器的一个插件(从商店搜索下载),可以录制你在浏览器上的操作,自动转化成各种语言的脚本(C、Java、Python、Ruby等)。在写自动化前通常使用此工具录制,转化出来的原始脚本作为开发基线,所以这个工具非常实用,大大提高生产效率。
    在这里插入图片描述
    在这里插入图片描述
    2.Selenium Grid:
    一款自动化辅助工具,能方便的实现多台机器和异构环境下运行脚本。为并发提供方便。
    3.Selenium RC:
    selenium RC = Client Library+ Selenium Server
    selenium server = launcher + http Proxy + Core
    RC,即remote control,负责控制浏览器。内部有一个Javascript的核心、http组件,以及浏览器函数库。本质上说,Selenium 1.0 是通过Javascript来控制浏览器,实现自动化的。这样会带来很大问题。浏览器种类很多,每种浏览器版本也很多。光靠一个版本的Selenium RC不可能兼容这么多版本的浏览器。实际使用中出现各种兼容性问题。

Selenium 2.0

Selenium 2.0 = Selenium 1.0 + Webdriver
为了彻底解决版本兼容问题,从2.0开始采用Webdriver方式,即一个版本的浏览器对应一个驱动,selenium通过调用驱动完美地操作浏览器。为了向下兼容,依然保留RC。

Selenium 3.0

Selenium 3.0 = Selenium 2.0- RC
从3开始全面移除RC,将某些Client Library函数取消或优化,例如switch_to_frame等等。

功能测试模型

金字塔模型

对于任何一个软件,都有一个个功能函数组成,函数间通过接口调用,其中的一部分接口映射到用户操作页面(GUI)的元素。
用户操作页面元素—>信息通过接口传递—>功能函数处理用户数据—>接口返回用户想要的结果
从数量上讲,函数的数量>接口的数量>GUI图像元素的数量。
形成一个金字塔的关系:
在这里插入图片描述
UI测试:黑盒测试。
API测试:灰盒测试。
Unit测试:白盒测试
3个级别的功能测试在数量上成金字塔形,所以过去几十年一致认为测试的工作量分配上,给白盒测试更多的测试时间,放在UI上的测试量最小。

功能测试项 实现人员 方式 工具
UI 测试 手动 鼠标点点点
测试 自动 selenium 、appium、桌面软件自动化
接口 测试 手动 postman、soupUI
测试 自动 requests
单元 开发 自动 各种计算机语言自身的单元测试框架

菱形模型

近几年,菱形模型为大多数企业认可,能减少生产成本,提高效率。菱形模型中间大,两头小。其中心思想是重点进行集成测试,因为只要充分测试了接口,就能很好的暴露出单元测试中的缺陷,减小单元测试工作量。另外好的接口测试能减少GUI测试量,毕竟接口都是好的,网页就不会出现性能问题。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43626147/article/details/109450640