自动化测试简介

1.1何为自动化测试?

  是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程。换言之,就是以程序实现的方式来代替手工测试。

1.2自动化测试分类

  分为功能自动化测试和性能自动化测试

一般所说的自动化测试是指功能自动化测试,是通过编码的方式,用一段程序来测试一个软件的功能,这样就可以重复执行程序来进行重复测试的目的。如果一个软件有小部分功能发生改变,只要修改一部分自动化测试代码,就可以重复对软件进行测试,从而提高测试效率。

1.3做自动化测试应该满足哪些要求?

  1.任务测试明确, 不会频繁变动

  2.每日构建后的验证测试

  3.比较频繁的回归测试

  4.软件系统界面稳定, 变化少

  5.需要在多平台运行相同的测试用例、组合遍历型的测试、大量的重复测试

  6.软件维护周期长

  7.项目进度压力不太长

  8.被测系统软件开发比较规范, 能够保证系统的可测试性

  9.具备大量的自动化测试平台

  10.测试人员具备较强的编程能力

通常情况下,只要满足以下三种情况就可以开展自动化测试:软件需求变更不频繁、 项目周期较长、 自动化测试脚本可重复使用

1.4自动化测试流程

1.4.1自动化测试的介入点:

  老式:一般是在系统测试阶段开始介入, 多用于系统测试的回归测试和性能测试

新式:开发开始概要设计评审就可以开始介入

1.4.2自动化测试流程:

可行性分析>测试需求分析(来源于测试团队内部)>制定测试计划>自动化测试设计>测试脚本开发> 无人职守测试>提交测试报告>脚本维护阶段

1.4.3手工测试优缺点

手工测试的缺点:重复性、精确性、效率

手工测试的优点:手工测试不可替代的地方至少包括 以下几个方面:测试用例的设计、经验和猜测错误能力、界面和用户体验测试、正确性的检查、人的思维和逻辑能力

1.5自动化测试工具

QTP:是quicktest Professional的简称, 是一款商业化的自动化测试工具。 提供了强大易用的录制回放功能。 支撑B/S、 C/S两种架构的软件测试。

Robot Framework:是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。

Selenium: 是一款用于Web应用程序测试的工具,它支持多平台、多语言、多浏览去实现自动化测试。

Selenium工具介绍

2.1Selenium工具简介

Selenium是ThoughtWorks专门为Web应用而开发的自动化测试工具, 适合进行功能测试、验收测试,同时支持所有基于web的管理任务自动化。主要功能包括:测试与浏览器的兼容性,测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能,创建回归测试检验软件功能和用户需求。

2.2Selenium特点:

开源、免费

多浏览器支持:Firefox、Chrome、IE、Opera

多平台支撑:windows、linux、MAC

对web页面有良好的支撑

简单(API简单)、灵活(用开发语言驱动)

支持分布式执行测试用例

2.3Selenium工具组成

是由几个工具组成,如下图所示:

①Selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器录制与回放功能。

实际场景中如何使用?

快速的创建BUG重现脚本,在测试人员的测试过程中,发现了BUG之后可以通过IDE将重现的步骤记录下来,以帮助开发人员更容易的重现BUG。IDE录制的脚本可以转换成多种语言,从而帮助我们快速的开发脚本。

②Selenium Gird是一种自动化测试的辅助工具,Gird通过现有的计算机基础设施,能加快web_app的功能测试,利用Gird,可以很方便的同时在多台机器上和异构环境中并行运行多个测试用例。

其主要特点:并行执行,通过一个主机统一控制用例在不同环境、不同浏览器下运行,灵活添加变动测试机

③Selenium RC是Selenium家族的核心工具, Selenium RC支持多种不同的语言编写自动化测试脚本, 通过Selenium RC的服务器为代理服务器去访问应用从而达到测试的目的。Selenium RC使用分Client Libraries和Selenium Server, ClientLibraries库主要用于编写测试脚本, 用来控制Selenium Server的库。

Selenium Server负责控制浏览器的行为, 它主要包含3部分:Launcher、Http Proxy、Core。

其中Core是被Selenium
Server嵌入到浏览器页面中, 它本质是JS函数的集合, 通过对这些JS函数进行操作,实现用程序对浏览器进行操作。Launcher 用于启动浏览器,把Core加载到浏览器页面中,并把浏览器代理设置成为Selenium Server的HttpProxy。

④WebDriver针对各个浏览器而开发, 取代了嵌入到被测web应用中的javascript, 与浏览器紧密集成。同时 WebDriver还利用操作系统级的调用模拟用户输入。

Java+Selenium环境搭建

准备工具如下:
JDK安装包: JDK1.8及以上
Eclipse 压缩包: http://www.eclipse.org/downloads/
Selenium压缩包: http://code.google.com/p/selenium/downloads/list,Selenium建议使用Java中的Maven下载,更方便

环境搭建就以Maven为例,要用Maven这个插件,就得查看该插件是否已集成在自己使用的Eclipse中,查看方式如下:

Window>Preferences,查看是否有Maven文件,若有,则说明已经集成好了(或已配置好了),可以使用,若没有,则需要自己手动配置。

第一步:

1.1新建一个Maven工程,File>New>Other

1.2选择Maven>选择Maven Project>点击Next

1.3弹出如下界面,默认下一即可

1.4在接下来的窗口中,选择maven-archetype-quickstart

1.5此处需要填写信息,包名及工程名,随意自己填写

1.6点击Finish后,就会生成一个工程,如下所示:

第二步,下载Selenium需要的jar包

2.1打开该网址:http://www.mvnrepository.com/,在输入框中输入Selenium,点击搜索,出现如下界面,由于我们配置的环境是Java+Selenium,所以选择第一个即可

2.2版本有很多,看个人选择,我下载的3.4.0版本

2.3点击3.4.0,出现如下界面,把如下代码复制到所建工程的pom.xml文件中

2.4粘贴到pom.xml文档中,保存便会自动下载

2.5下载完成后,可查看到刚下载的Selenium中包含的jar包,如下所示:

第三步:

环境已配置完毕,就去写第一个自动化代码吧。在百度输入框中输入12306并点击搜索,代码实现如下:

 package com.test.auto;

 import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; public class yihuqingjiu_test_12306 { public static void main(String[] args) throws Exception {
//chrom浏览器驱动的位置
System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
//web驱动指向chrom驱动并创建对象driver
WebDriver driver=new ChromeDriver();
//获取网址
driver.get("https://www.baidu.com");
//浏览器最大化
driver.manage().window().maximize();
//kw是输入框的id,12306是在输入框中药输入的内容
driver.findElement(By.id("kw")).sendKeys("12306");
//su是搜索按钮的id
WebElement btn=driver.findElement(By.id("su"));
//点击事件
btn.click();
//休眠时间
Thread.sleep(3000);
//关闭页面
driver.close(); } }

UI自动化测试简介及Selenium工具的介绍和环境搭建的更多相关文章

  1. UI自动化测试(一)简介及Selenium工具的介绍和环境搭建

    自动化测试简介 1.1何为自动化测试? 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程.换言之,就是以程序实现的方式来代替手工测试. 1.2自动化测试分类 分为功能自动化测 ...

  2. App自动化测试-1.App自动化介绍和环境搭建

    App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...

  3. Python介绍及环境搭建

    摘自http://www.cnblogs.com/sanzangTst/p/7278337.html Python零基础学习系列之二--Python介绍及环境搭建   1-1.Python简介: Py ...

  4. [springboot 开发单体web shop] 1. 前言介绍和环境搭建

    前言介绍和环境搭建 简述 springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢? 在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小 ...

  5. Maven介绍及环境搭建

    Maven介绍及环境搭建 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 下载Maven boot:类加载器框架,Maven使用它加在自 ...

  6. Maven快速入门(一)Maven介绍及环境搭建

    做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...

  7. Django 01 django基本介绍及环境搭建

    Django 01 django基本介绍及环境搭建 #http服务器 #用来接收用户请求,并将请求转发给web应用框架进行处理 #Web应用框架 #处理完请求后在发送给http服务器,http服务器在 ...

  8. web自动化框架之一介绍与环境搭建(Selenium+Eclipse+Python)

    看到一篇环境搭建文章,详细又全面,这里就不一一重复了 http://blog.csdn.net/dyllove98/article/details/9390649 其它: 1.框架介绍      整个 ...

  9. Appium 介绍与环境搭建

    目录 Appium 介绍 APP 自动化测试介绍 什么是 Appium ? Appium 优势 Appium 架构 Appium 生态 Appium 组件 UiAutomator API Bootst ...

随机推荐

  1. 正则表达式过滤HTML、JS、CSS

    功能用途 主要是用来提取html页面内容时使用. 示例代码 using System; using System.Collections.Generic; using System.Linq; usi ...

  2. HAproxy功能配置

    author:JevonWei 版权声明:原创作品 haproxy配置文档 https://cbonte.github.io/haproxy-dconv/ 环境 前端HAProxy 172.16.25 ...

  3. Windows下配置Nginx

    一.今天是2017年1月18日.揣着一种也许叫做冲动的心情,决定以后每天都记录和回顾新涉及的技术,巩固已学到的知识,坚持. 二.回归到今天的技术主题,因为之前对于[反向代理]这种技术充满了好奇,借此机 ...

  4. Oracle实现分页查询的SQL语法汇总

    1.无ORDER BY排序的写法.(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! sql语句如下: ) TABLE_ALIAS ; 2. ...

  5. ORACLE SEQUENCE的简单介绍

    先假设有这么一个表: create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2() not null, DepartOrd ...

  6. 3.修改第一个程序来点亮LED

    在上一节中已经将驱动程序框架搭建好了 接下来开始写硬件的操作(控制LED): (1)看原理图,确定引脚 (2)看2440手册 (3)写代码(需要使用ioremap()函数映射虚拟地址,在linux中只 ...

  7. hdu 3062 2-Sat入门

    开始学习2-Sat,前面看了对称性解决2-sat的ppt,很有帮助. 题意:n对夫妻,夫妻需要出席一人,给出不相容的关系,求每对是否能完成出席方案. 思路:通过关系建图,Tarjan缩点,然后进行判断 ...

  8. Cetnos搭建vsftp服务器

    1.首先yum安装vsftp server   以3.0.2为例 命令:yum -y install vsftpd 2.配置文件  vsftp.conf 具体配置内容如下: anonymous_ena ...

  9. 没有闲话和grunt.initConfig()

    grunt.initConfig()为Gruntfile.js的核心部分,它接收对象作为参数. 对象包含两种类型的属性,一种是单纯的变量,一种是task类型.举个栗子: grunt.initConfi ...

  10. 如何通过navigator.userAgent判断是哪款浏览器?

    userAgent 用户代理.通过浏览器控制台alert( navigator.userAgent );可以获得当前浏览器的信息,如果逆推呢? 通过navigator.userAgent判断是哪款浏览 ...