初识Selenium自动化(为什么要去用自动化?)

什么是自动化测试

  • 让程序代替人去验证程序功能的过程
  • 自动化测试就是把以人为驱动的测试行为转化为机器执行的一种过程
  • 比如说:我们设计好执行脚本,通过驱动连接浏览器去模拟人去操作浏览器一般

为什么要进行自动化测试

  • 解决回归测试
  • 解决压力测试
  • 解决兼容测试
  • 提高测试效率,保证产品质量

自动化测试所属分类

  • 黑盒测试(功能测试)
  • 灰盒测试(接口测试)
  • 白盒测试(单元测试)

注意:Web自动化测试属于黑盒测试(功能测试)

自动化测试优缺点

优点:

  • 比较少时间运行更多的测试用例
  • 自动化脚本可以重复使用
  • 减少人为的错误
  • 测试数据存储

缺点:

  • 不能取代手工测试
  • 手共测试比自动化测试发现的缺陷多,实际测试里面,手共bug80%,自动化工具20%(性能和功能)
  • 测试人员技能要求,要懂代码

自动化测试过程

​ 自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。

  • 自动化测试需求分析

    当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例,测试数据,并形成详细的文档,以便于自动化测试框架的建立。

  • 自动化测试框架的搭建

    所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件,结构,调用的过程,以及文件结构如何划分。

    而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素

  • 公用的对象

    不同的测试用例会有一些相同的对象被重复使用,比如窗口,按钮,页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需要修改所有的测试脚本

  • 公用的环境

    各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性

  • 公用的方法

    当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,我们便需要自己编写该方法,以方便脚本的调用

  • 测试数据

    也许一个测试用例需要执行很多个测试数据,我们便可以将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取文件,从而达到数据覆盖的目的。

    在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程

自动化测试分类

  • web -(UI)自动化测试
  • 接口自动化测试
  • 移动(app)自动化测试
  • 单元测试--------------自动化测试

什么是Web自动化测试

让程序代替人为去验证web项目功能的过程

什么web项目适合自动化测试

  • 需求变动不频繁

    测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本维护的本身就是一个代码开发的过程,需要修改,调式,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的

    项目中的某些模块需求变动性很多。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试

  • 项目周期足够长

    自动化测试需求的确定,自动化测试框架的设计,测试脚本的编写与调式均需要相当长的时间来完成。这样的过程本身呢个就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期较短,没有足够的时间去支持这样的一个过程,那么自动化测试便成为笑谈。

  • 自动化测试脚本可重复使用(项目需要回归调式)

    如果费劲心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,至其所消耗的成本大于所创建的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正产生效益的测试手段了

    另外,在手共测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比容性能测试,配置测试,大数据量输入测试等。

主流测试工具

web自动化测试工具:selenium,QTP,Robot Framework功能自动化测试框架

性能自动化测试工具:loadrunner ,Jmeter

接口自动化测试工具:SoapUI,Postman,Jmeter,restclient

移动(app)自动化测试工具:robotium(Android 自动化测试框架),appium,Monkey(压力测试,随机测试工具)

云测平台:testin

功能测试工具Selenium简介

selenium是一款基于web应用程序的开源测试工具

它支持Firefox,Chrome,IE等众多浏览器

他同时支持Java,C#,Ruby,Python,PHP等众多的主流语言

Selenium特点

  • 开源,跨平台,运行在浏览器中
  • 简单灵活,支持很多种语言

Selenium核心组件

selenium Core:支持DHTML的测试案列(效果类似数据驱动测试),它是Selenium IDE 和 Selenium的引擎

selenium IEDS是一个Firefox浏览器的一个插件,可以实现对浏览器的简单操作的录制与回放功能。一般用于测试人员在测试过程中发现bug,通过selenium IDE将重测步骤录制下来,快速创建了bug重现版本,从而提供开发人员容易重现bug。IDE除了录制回放外还可以导出录制的脚本,并导出多种语言,不同版本的selenium脚本,供测试人员快速开发脚本

Selenium RC:Selenium Remote Control。Selenium RC 使用的是javascript注入的方式跟浏览器打交道。这样 Selenium RC 需要启动一个Server,然后将操作页面元素的API 转成javascript脚本,再把这段脚本注入到浏览器中去执行。而通过这种javascript注入的方式一来太依赖翻译成javascript质量的好坏,二来javascript存在同源问题。这使测试变得不那么容易。

Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web 应用的功能测试。

Selenium IDE

command:表示要进行打开点击操作所要执行的命令

  1. open:打开指定的URL,www.baidu.com
  2. clickAndWait:命令,表示进行点击操作、其中有AndWait表示页面需要进行刷新、
  3. type:设置输入关键字 美女
  4. target:执行命令的对象。需要找到link才可以执行 clickAndWait操作。
  5. 其中target:是按照css或者Xpath的语法在页面寻找到对应元素

1、指的是你当前录制时的开始连接地址。

2、这里就是你的测试用例,刚开始录制好之后都是没有命名的。

3、脚本命令内容,command:方法关键字;Target:元素定位;Value:参数。

4、新建和修改脚本的地方。

5、日志输出。

6、右上角的红色圆,空心的时候表示的正在录制,实心表示录制结束。

五、录制第一个脚本,打开www.baidu.com,再输入框输入Selenium,点击百度一下按钮。我们只需要打开seleniumIDE,然后在Firefox中操作以上步骤,之后打开seleniumIDE关闭录制按钮,生成脚本。

posted @ 2021-04-29 17:04  乐乐乐乐乐乐樂  阅读(258)  评论(0)    收藏  举报
jQuery火箭图标返回顶部代码