搜档网
当前位置:搜档网 › 利用Selenium建立自动化测试框架

利用Selenium建立自动化测试框架

利用Selenium建立自动化测试框架
利用Selenium建立自动化测试框架

利用Selenium RC 搭建自动化测试框架

最近利用业余学习利用selenium RC 来进行自动化测试的初步框架,并写了几个简单的自动化用例脚本,实现了从外部excel档(即自动化测试用例)中读取测试数据,实现检查点校验并将测试结果写入测试用例文档,并对测试结果进行统计。现在将具体实现过程进行归纳如下。

1 selenium 简介

Selenium是ThoughtWorks公司开发的一套基于WEB应用的测试工具,直接运行在浏览器中,仿真用户的操作,它可以被用于单元测试,回归测试,冒烟测试,集成测试,验收测试,并且可以运行在各种浏览器和操作系统上。

为什么不用qtp

Selenium可以很好的支持包括firefox浏览器在内的各种浏览器,而qtp对firefox 的支持很差。我们公司的OMS系统基本上是基于firefox开发的,从工具的兼容性及自动化脚本的调试难度来说,用selenium更加便利

Qtp的脚本语言仅支持vbscript,selenium可以直接使用JAVA、python等语言进行编写,从开发语言上手难易程度来讲,采用selenium更加容易上手。

2 Selenium RC搭建自动测试框架

2.1.配置selenium运行环境

2.1.1 安装JDK

这里我们使用java作为自动化脚本开发语言,要安装JDK,并配置环境变量

目前服务端的各台测试机上应该都安装了,可以从开始->运行-> cmd中调出命令行窗口,输入java –version 如果能查看到当前的jdk版本信息,代表jdk安装成功,见图。

2.1.2 在eclipse上部署一个自动化测试工程

2.1.2.1 安装eclipse

在配置好jdk后,下载eclipse安装包,然后按照提示信息一步一步安装就行。

2.1.2.2 新建一个自动化测试工程

打开eclipse,点击file->new->project,新建一个工程

选择Java Project,然后next

输入工程名,next

在这个界面上我们点击到libraries 标签,引入本次自动化测试所需要的4个jar包:

其中:

excel_handling.jar 是excel表格的处理函数,包括读写等等;junit.jar是执行测试的支持包;

poi-3.8-20120326.jar是excel支持包;

selenium-server-standalone-2.28.0.jar是selenium的支持包。

2.1.2.3 新建一个主程序JAVA文件

工程建好后,如图首先建立一个主程序类的包

包的名字是automation_test(如果改成其它名字,则对应的主程序引入的包名也要修改)

在包下新建一个类

类的名字是OmsTest(如果改其他的名字,对应的主程序java文件类的名字也要改)

将自动生成的代码清空,并将OmsTest.java 中的代码拷贝进去即可

主程序代码有注释,大家可以看一下。

主要思路就是通过读取excel中的测试用例的参数,然后让selenium自动执行,并将执行结果再写入到测试用例,实现自动测试并统计测试结果的目的。

判断测试执行是否正确的依据是元素检查点,当一个测试用例的某个步骤出现与预期结果不一致的情形时,程序中止该条用例的执行,并将错误记录下来,继续进行下一条用例,直到所有用例执行结束。

2.2 编写自动化测试用例

2.2.1自动化用例模板

我现在设计的用例模板的样式是这样的:

字段解释:

用例编号:同一条用例的编号都设置为相同的,主要是为了当某一步执行错误时,中止该错误用例的继续执行,程序可以找出下一条用例的编号所在的excel行;

用例说明:同手工用例

用例步骤说明:基本类似手工用例

动作函数:执行某个操作时,所需要用到的selenium类方法,目前使用较多的是鼠标左键

单击(click)、鼠标左键双击(doubleClick)、打字输入(type)、鼠标右键单击

(contextMenu),如果有其他鼠标动作,需要查询selenium的相关API文檔

动作参数: 这里的动作参数指的是元素的xpath路径,xpath是xml元素查询的语法,可以指向唯一的一个xml元素,关于xpath语法下面单独设立一个章节来讲。

对于不需要输入值的鼠标动作来说,只需要一个动作参数,即元素本身,如

click,doubleClick,contextMenu动作;

对于需要输入值的动作,如type,则需要两个参数,一个是操作的元素,一个

是输入的值。

目前暂未发现有三个动作参数的情况。

如果动作参数只有1个,则动作参数2、动作参数3字段输入“无”;如果动作

参数有2个,则动作参数3字段输入“无”,这主要是为了让程序找到执行动作

函数的入口

元素检查点:每执行一个步骤后,都会输出相应的值,对于关键步骤,可以设置元素检查点,检查页面是否存在某个元素,如果存在,表示该步骤执行成功;如果不存在,

则代表用例执行错误。元素检查点可以是检查是否存在一个按钮、或者一行文

本等等。

实际是否存在:程序执行时根据实际的执行页面查找检查点,如果找到了检查点,则自动输出“是”;如果没找到检查点,则输出“否”;如果该步骤未进行检查点判断,则

输出”未验证”。

测试是否通过:程序根据检查点判断情况检查测试用例执行的正确与否,当【实际是否存在】域值为是时,则输出【是】;当【实际是否存在】域值为否时,则输出【否】;

当【实际是否存在】域值为未验证时,则输出【未验证】。用例执行过程中,任

何一步的【测试是否通过】域值为否时,都会中止当前用例的执行,自动寻找下

一条用例继续执行

结果统计:当所有用例都执行通过时,输出“所有用例执行成功”;当某些用例执行失败时,输出执行错误的用例编号。

2.2.2 Xpath元素定位

自动化测试最根本的就是“元素定位”,如果元素定位出现问题,则自动化测试的过程和结果都会出现问题。Xpath是xml元素的查询语言,可以准确定位页面上的任意一个元素,借助几个firefox插件,可以很好地辅助我们学习xpath语法,正确编写自动化测试用例。

2.2.2.1 xml页面代码中元素的定位

看一段xml代码:




     

     

     

保存为1.html后,用firefox打开如下:

比如说我们要定位【测试输入】这个文本框,可以用以下的xpath语句:

//input[@name=”testname”]

其中// 表示在整个页面元素中查找,input 代表元素的标签,@name 表示这个元素的属性名,testname表示属性值;

由此可见,xpath的第一种定位方式即//元素卷标名[@”属性名”=”属性值”]。

这段代码中,input 表示这个文本输入框的标签名,name为属性名,testname为属性值。

同理,还可以用//input[@value=”测试输入”] 来定位该输入框。

//input[@value=”保存1”] 定位”保存1”这个按钮;//button[@type=”button”]定位“保存2”这个按钮。

【思考】可否用//input[@name=”save”] 来定位“另存为”这个按钮?为什么,如果要定位“另存为”,该用什么表达式?

2.2.2.2 定位xml元素的辅助插件

综上所述,要定位页面的一个元素,只需找到一个//元素卷标名[@”属性名”=”属性值”] 的表达式可以唯一的指向该元素即可,关键是我们该如何判断一个元素卷标、属性名和属性值,以及如何确定该表达式确实可以正确指向该元素。需要用到3个firefox插件:Firebug 、xpath checker 以及selenium IDE。

2.2.2.2.1 FireBUG 查找元素的标签名、属性名、属性值

Firebug大家应该比较熟悉了,我们要用到它的“查看元素”功能,如果我们不清楚一个元素的卷标、属性或者属性值时,可以通过该功能进行查找。

具体使用步骤看截图

通过该按钮,可以很方便的找到页面元素的各个属性,为使用xpath语法定位元素创造基础。

2.2.2.2.2 Xpath checker 检查xpath定位语法的正确性

如上所述,我们根据FIREBUG 查找到元素的标签及属性值,并根据xpath 语法进行元素定位,那如何确定元素定位是否正确?这里就需要用到另一个插件,叫xpath checker,该插件可以检查xpath路径的正确与否,仍以刚才的页面代码为例。




     

     

     

从xml代码中可以知道//input[@name=”testname”] 可以指向【测试输入】这个文本框,可以用xpath checker来检验一下语法对不对。

可以看到//input[@name=”testname”] 可以正确的定位到该文本框。

如果输入//input[@name=”save”],看看是什么情况。

看看这两个元素的xml语言就知道为什么了。

可以看到,如果以//input[@name=”save”]作为xpath路径定位语句,由于这两个元素的标签都是“input”,且都存在name这个属性,而且属性值都是”save”,因此就会匹配出2个,这种情况下,就不能唯一的定位一个元素,如果要定位“保存1”和“另存为”这两个元素,就需要采用另外的属性了。可以看到,两个元素虽然都有相同的value属性名,但是属性值是不同的,因此可以分别用//input[@value=”保存1”];//input[@value=”另存为”]来定位这两个元素,用xpath checker 检查一下。

我们在做自动化测试时,要确保元素的xpath都只能指向唯一的一个,否则如果指向多个的话,程序将随机点击,那样自动测试的结果就不会准确。

另外,对于 这种有文本内容在标签对之外的,可以直接使用//button[text()=”保存2”]来进行定位,十分方便,特别是OMS系统中很多按钮的标签名、属性名、属性值都一样的,只有按钮名字不同,也只有用这个方式才能定位到唯一元素。

【注】//标签名[text()=”文本内容”] 这个xpath定位语句在编写用例中会经常用到,应该予以牢记。

2.2.2.2.3 Selenium IDE进行单步调试

如何检验我们的动作函数及动作参数是否准确。可以用selenium IDE进行单步调试。【注】selenium IDE 也可以进行录制,但回放一般都会由于元素找不到而失败,因此不采用selenium IDE录制用例,而采用xpath定位元素的办法手写用例。

在需要进行调试的页面,点击firefox浏览器的selenium IDE插件

插入一条命令

输入需要调试的动作函数及动作参数

执行命令,进行调试

3 OMS自动化测试实例

简单介绍了下元素定位方法后,就可以开始编写自动测试用例了,下面以OMS-basic->内容管理->【新建子栏目】为例,开始编写并运行自动化测试用例。以百视通测试环境展现管理系统http://192.168.1.151:8080/oms-basic/main.html作为被测系统,首先通过修改数据库,取消登录动态验证码。【将Oms_sso_bestv 数据库system_config 表的authType字段值改为1 ,重启tomcat服务即可】

3.1测试系统初始化

用户登录页面已在主程序中进行了初始化,可参考OmsTest.java 的10-16行

正式写用例之前先把测试环境的值填好,写完用例以后再把测试用例存放路径以及需要执行的测试用例的起始行及结束行填进去即可。

【注】正式编写用例将以administrator刚登陆进去以后的页面为初始页面,即:

3.2编写自动化测试用例

打开excel自动测试用例模板,将用例步骤细化,在该用例模板中,以下字段为必填项:【用例编号】、【动作函数】、【动作参数1】、【动作参数2】、【动作参数3】、【元素检查点】以在应用商店运营管理系统->selenium自动化测试栏目下“添加子栏目”为例: 第1步:展开“应用商店运营管理系统”目录树(因为刚登陆进去的时候该根目录树是折叠的)。

展开目录树有两种方法1:点击前面的+ 号;2:双击该栏目。

如果选择第1种方式,则【动作函数】字段填写click,【动作参数1】填写“+”的xpath 路径,采用FIREBUG的查看元素功能查看该元素的标签及属性.

可以看到+号的元素标签及属性如下:

如果按照//元素标签[@属性名=”属性值”]的xpath语法的话,该元素有三种xpath定位写法,分别是:

//img[@class=” x-tree-ec-icon x-tree-elbow-end-plus”]

//img[@src=” images/default/s.gif”]

//img[@alt=””]

分别使用xpath checker 进行判断:

再看看+号标签对

之间也没有文本,不能用//元素标签名[text()=”文本”]来进行定位

因此该+ 号的定位就有点难度。我们采用第二种方式展开根目录树,即鼠标双击。

鼠标双击的【动作函数】是doubleClick,我们只要找到“应用商店运营管理系统”的xpath 路径作为【动作参数1】即可。

使用FIREBUG 查看该元素的标签属性:

应用商店运营管理系统

采用//元素标签名[text()=”文本”] 来尝试定位该元素

因此在自动化用例模板里面第一步可以这样写:

Selenium安装以及简单的自动化测试用例

Selenium安装以及简单的自动化测 试用例 中科软科技股份有限公司 2013年4月 V1.0.0

关于本文档 说明:类型-创建(C)、修改(U)、删除(D)、增加(A);

目录 目录 (3) 1.Selenium介绍 (3) 2.相关组件 (3) 3.启动seleniumRC (4) 4.简单测试用例 (4) 4.1在火狐浏览器上下载并打开selenium IDE (5) 4.2录制测试用例 (6) 4.2.1 录制 (6) 4.2.2 检查 (6) 4.2.3 语言转换 (6) 4.2.4 准备Eclipse环境 (7) 4.2.5 运行 (9) 1.Selenium介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。 功能: ●测试直接在浏览器中运行,就像真实用户所做的一样,从终端用户的角度测试应用程序。 ●使浏览器兼容性测试自动化成为可能。 ●使用简单,可生成多种语言的用例脚本。 2.相关组件 ●Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例。随后可以 运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。

●Selenium Remote Control (RC) :支持多种平台(Windows,Linux,Solaris)和多种浏览器(IE, Firefox,Opera,Safari),可以用多种语言(Java,Ruby,Python,Perl,PHP,C#)编写测试用例。 ●Selenium Grid :允许Selenium-RC 针对规模庞大的测试案例集或者需要在不同环境中 运行的测试案例集进行扩展。 3.启动seleniumRC 官网下载:https://www.sodocs.net/doc/d318454079.html,/download/。打开cmd,进入RC存放文件夹。在命令行输入:java –jar selenium-server.jar 。 启动成功。 注意在启动RC前,确认电脑上安装JDK版本高于1.5 4.简单测试用例 以OA系统登录为例:

开源自动化测试工具selenium的使用

开源自动化测试工具selenium的使用 (玉米猫) 一Selenium概述: Selenium是现在使用最为广泛的一款开源自动化测试工具,也是非商业支持的稳定性易用性最好的一款自动化测试工具。和由HP提供强大商业支持的QTP相比,selenium不仅在软件投资上有比较大的优势,在针对web测试的稳定性上也有绝对的优势。以下介绍的内容会通过和QTP在各方面的比较中进行,并针对简单的测试样例,对基本的使用进行简单说明。 二Selenium的组成: 和QTP等其他工具类似,selenium也有几个组件组成,同时在使用的时候还需要一些开发的IDE平台进行支持。 对于初步的简单使用,需要先掌握seleniumIDE,RC的基本使用,以及对象识别方式Xpathe的基本知识。 1)seleniumIDE: selenium和QTP类似,同样需要先进行一定的脚本录制工作,而它默认支持的录制浏览器是firefox,IDE就充当了一个脚本记录的工作,它的表现形式为firefox的一款插件。 它可以记录准备过程中,用户在firefox上的制定网址下所做的一切操作,并转化为自己需要的一种开发语言,包括:java、perl、PHP、C#、Ruby等等。 2)RC: RC是selenium的特色组件,它通过从底层向不同的浏览器发出动作指令,达到用脚本控制web的效果,和QTP的activeX驱动的模式有着本质的不同,只要浏览器的动作指令原理不发生本质性的变化,就可以利用selenium达到自动化测试的效果,不会由于出现新的浏览器,还要等待HP重新开发相应的activeX控件。

3)其他: 由于selenium的非商业支持,所以很多类似于QTP中的组件都使用了firefox插件的办法得到了补充。 Firebug:帮助用户对页面上的对象进行识别,它可以准确捕捉到任何一个可见元素和不可见元素,同时支持由对象找代码和由代码找对象的使用方法,非常类似于QTP的spy 和控件高亮显示功能。 Xpather:帮助用户利用xpath标记对象的位置信息,根据xpath的实现方式,可以将页面上的每一个控件元素做唯一性标识,非常类似于QTP的对象库,区别在于Xpath只记录元素的位置样式属性,不会记录截图。 三Selenium的简单使用: 1)测试的准备工作: 这里所说的准备工作,只一个自动化测试的准备,预计基本的测试用例等内容已经准备完成。 假如被测系统为ADCPX: 首先:用firefox打开被测系统的首页,启动IDE插件。 需要注意的是,IDE的baseUrl一定是当前要测试的web首页,默认生成的第一个testcase 的名称可以通过属性进行更改。一个IDE中可以录制或生成多个testcase。

selenium自动化测试的框架

selenium 自动化测试的框架 自动化测试的框架 软件自动化测试 style="font-family: 宋体 ;mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin;mso-fareast-font-family: 宋体 ;mso-fareast-theme-font: minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-the me-font:minor-latin"> 个阶段。 自动化测试的框架 软件自动化测试的框架和工具的发展大致将经历以下4个阶段。

Selenium自动化测试用例设计注意事项

Selenium自动化测试用例设计注意事项 UI元素映射 元素验证 等待加载 日志记录 结果收集 Selenium自动化测试用例设计注意事项(一) 自动化测试设计简介 我们在本章提供的信息,对自动化测试领域的新人和经验丰富的老手都是有用的。本篇中描述最常见的自动化测试类型,还描述了可以增强您的自动化测试套件可维护性和扩展性的“设计模式”。还没有使用这些技术的、有经验的自动化测试工程师会对这些技术更加感兴趣。 测试类型 您应该测试应用程序中的哪些部分这取决于您的项目的各种影响因素:用户的期望,时间期限,项目经理设置的优先事项等等。但是,一旦项目边界定义完成,作为测试工程师,你必须做出要测试什么的决定。 为了对Web应用的测试类型进行分类,我们在这里创建了一些术语。这些术语并不意味着标准,但是这些概念对web应用测试来说非常典型。 ● 测试静态内容 静态内容测试是最简单的测试,用于验证静态的、不变化的UI元素的存在性。例如: → 每个页面都有其预期的页面标题这可以用来验证链接指向一个预期的页面。 → 应用程序的主页包含一个应该在页面顶部的图片吗 → 网站的每一个页面是否都包含一个页脚区域来显示公司的联系方式,隐私政策,以及商标信息→ 每一页的标题文本都使用的

标签吗每个页面有正确的头部文本内吗 您可能需要或也可能不需要对页面内容进行自动化测试。如果您的网页内容是不易受到影响手工对内容进行测试就足够了。如果,例如您的应用文件的位置被移动,内容测试就非常有价值。 ● 测试链接 Web站点的一个常见错误为的失效的链接或链接指向无效页。链接测试涉及点各个链接和验证预期的页面是否存在。如果静态链接不经常更改,手动测试就足够。但是,如果你的网页设计师经常改变链接,或者文件不时被重定向,链接测试应该实现自动化。 ●功能测试 在您的应用程序中,需要测试应用的特定功能,需要一些类型的用户输入,并返回某种类型的结果。通常一个功能测试将涉及多个页面,一个基于表单的输入页面,其中包含若干输入字段、提交“和”取消“操作,以及一个或多个响应页面。用户输入可以通过文本输入域,复选框,下拉列表,或任何其他的浏览器所支持的输入。 功能测试通常是需要自动化测试的最复杂的测试类型,但也通常是最重要的。典型的测试是登录,注册网站账户,用户帐户操作,帐户设置变化,复杂的数据检索操作等等。功能测试通常对应着您的应用程序的描述应用特性或设计的使用场景。 ● 测试动态元素 通常一个网页元素都有一个唯一的标识符,用于唯一地定位该网页中的元素。通常情况下,唯一标识符用HTML标记的’id’属性或’name’属性来实现。这些标识符可以是一个静态的,即不变的、字符串

Selenium自动化测试框架设计指南

TAS Design Guide Author: peng gong Table of Contents 1 TAS模型介绍 (2) 1.1 Jenkins (2) 1.2 Python (3) 1.3 Selenium (3) 1.4 脚本代码管理:svn (3) 1.5 TAS运行环境:Linux+window (3) 2 TAS Frameworks (3) 2.1 测试管理:Jenkins (4) 2.2 脚本语言:Python (4) 2.2.1 Python2.7 (4) 2.2.2 Nose (4) 2.2.3 proboscis (5) 2.3 Web驱动:selenium (5) 3 TAS部署和要求 (5) 3.1 TAS环境要求 (5) 3.2 Jenkins和selenium安装 (5) 4 TAS运行和测试 (6) 4.1 测试运行 (6) 4.2 开发调试 (6) 4.3 开发调试工具 (6) 5 Code Frameworks (7) 5.1 Code结构 (7) 5.2 team模块举例 (7) 5.3 编码规范: (7) 5.4 A Simplest Example Script (8)

1.2 Python Python最大优点就是比其他语言更简单易学。同时Python自带的和大量开源的测试框架使得TAS系统架构更简单和便捷。TAS Frameworks使用了python自带的unittest拓展的开源nose和proboscis模块。 1.3 Selenium Selenium selenium是跨平台的web测试工具包。TAS选择selenium的原因在于: Selenium具有跨平台,跨浏览器的特点。 Selenium支持多种编程语言和测试框架。 Selenium工具包 TAS中使用了selenium RC驱动Web,开发工程师在开发script过程中可以使用selenium IDE和firebug等工具。 selenium运行 TAS中selenium有两种工作方式:服务器端和QA客户端。selenium运行在服务器端Jenkins和Selenium 交互,后者启动浏览器完成测试,返回结果给Jenkins。selenium运行在QA客户端的好处在于可以并行运行多个TAS测试任务。 1.4 脚本代码管理:svn TAS系统的脚本代码使用svn进行管理。测试中,Jenkins上配置svn的路径,Jenkins job开始构建时从svn中checkout最新版本进行测试。 1.5 TAS运行环境:Linux+window TAS系统的Jenkins安装在Server端的Linux/Ubuntu中,同时selenium也可以部署在Server上。测试工程师的PC上部署的selenium一般用于debug调试使用。 2 TAS Frameworks TAS框架主要由4部分组成,测试集成管理的Jenkins,Python脚本以及python 包,Selenium驱动模块和版本管理svn。详细模块拓扑图如下:

Selenium自动化测试

Selenium自动化测试 一、目标和意义 a)掌握基本的自动化测试基础(过程,流程,定位方法) b)掌握初级脚本编写(参数化、打开文件,操作方法等) c)掌握单元测试套件的编写,自动化测试框架的设计和应用 二、课程安排 第一天 a)Web自动化测试的基础 b)Web自动化测试环境搭建 c)Python语言学习(上) 第二天 d)Python语言学习(下) e)Selenium-IDE工具的使用 f)Selenium初级脚本编写(定位;操作) 第三天 g)Selenium高级脚本编写(参数化, css/xpath定位) h)打开/写入文件、读取excel i)Pyunit单元测试框架介绍 第四天 j)测试套件的使用 k)测试报告的生成 l)测试框架的设计和应用 三、什么是自动化 由机器或工具代替手工执行软件测试,单击被测软件的界面,执行一系列操作并进行验证的过程 分类 功能自动化----QTP、Selenium 性能自动化----LR、Jmeter 白盒自动化----junit等 四、自动化测试的原理 a)手工测试 1、打开浏览器,访问iwebshop首页 2、点击登录按钮,进入登录页面 3、输入用户名,密码 4、点击登录按钮

5、系统提示登录成功,进入个人页面 b)自动化测试 1、调用webdriver函数打开浏览器,使用方法(get)访问目标网址 2、通过页面元素的属性定位登录按钮,使用方法(click)操作目标对象 3、通过页面元素的属性定位用户名/密码,使用方法(sendkeys)操作目标 对象 4、通过页面元素的属性定位登录按钮,使用方法(click)操作目标对象 5、定位实际结果并获取,比对实际结果与预期结果---断言 五、开展自动化测试的条件 1、手工测试基本通过 2、需求比较稳定,不易变更 3、自动化测试脚本可复用 4、项目周期足够长 5、手工测试无法完成时,需要投入大量的人力/物力 六、QTP与selenium工具的区别 七、Python—selenium自动化测试环境搭建 Os:xp、server、win7 1、安装Python--- python-2.7.6.msi,一路下一步,默认安装在C盘,配置path环境变量,追加Python安装目录C:\python27,验证:win+r打开运行,输入cmd进入dos环境,输入Python回车 查看是否进入Python环境。 2、安装setuptools-0.6c11.win32-py2.7.exe,一路下一步,默认安装。 3、安装selenium--- selenium-2.40.0.tar.gz, A、解压该压缩包,移动到C:\Python27\Lib\site-packages目录下,win+R 打开运行,输入cmd进入dos环境, B、使用cd命令进入C:\Python27\Lib\site-packages\selenium-2.40.0,输入dir查看setup.py文件 C、输入安装命令:Python setup.py install 回车

selenium自动化测试脚本

package https://www.sodocs.net/doc/d318454079.html,.selenium; import java.util.concurrent.TimeUnit; import org.junit.*; import static org.junit.Assert.*; import org.openqa.selenium.*; import org.openqa.selenium.chrome.ChromeDriver; public class First { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); @Before public void setUp() throws Exception { System.setProperty("webdriver.chrome.driver","D:/chromedriver_win32/chromedriver.exe"); driver = new ChromeDriver(); baseUrl = "https://www.sodocs.net/doc/d318454079.html,/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void testFirst() throws Exception { driver.get(baseUrl + "/"); driver.findElement(By.id("kw")).click(); driver.findElement(By.id("kw")).clear(); driver.findElement(By.id("kw")).sendKeys("天气预报"); driver.findElement(By.id("su")).click(); driver.findElement(By.xpath("//table[@id='1']/tbody/tr/td/h3/a/em[2]")).click(); } @After public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } private boolean isElementPresent(By by) { try {

用Selenium实现页面自动化测试

引言 要不要做页面测试自动化的争议由来已久,不做或少做的主要原因是其成本太高,其中一个成本就是自动化脚本的编写和维护,那么有没有办法降低这种成本呢?童战同学在其博文《界面自动化测试猜想》提到“将TC自动转化为自动测试脚本”的构想,大家都觉得这个还是很有难度的,那么我们退一步,“将功能测试执行的过程录制下来转化为自动化测试脚本”,这个难吗?或许不难,借用Selenium这个工具就可以实现。 Selenium简介 Selenium是ThoughtWorks公司开发的强大的web自动化测试工具。说它强大是因为:测试直接在浏览器中运行,就像真实用户所做的一样,从终端用户的角度测试应用程序。 使浏览器兼容性测试自动化成为可能。 使用简单,可生成多种语言的用例脚本。 Selenium主要包含以下三个组件: Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。 Selenium Remote Control (RC) :支持多种平台(Windows,Linux,Solaris)和多种浏览器(IE,Firefox,Opera,Safari),可以用多种语言(Java,Ruby,Python,Perl,PHP,C#)编写测试用例。下面是其架构图 : Selenium Grid :Selenium RC的扩展,将测试用例部署到多台Server,并行运行以加快速度节省时间。 Selenium试用 1. 安装Selenium IDE这个Firefox插件。安装后打开Firefox,从“工具”菜单选择“Selenium IDE”-打开Selenium IDE。如下图所示,红色的圆点控制脚本录制的开始和停止。 2. 执行功能测试用例并录制脚本。 我选择了一个比较简单的测试用例做为演示,该测试用例用于验证未通过实名认证的用户发布宝贝页面会出现实名认证提醒信息。主要步骤是: 1) 打开淘宝首页 2) 点击“我要卖” 3) 点击“一口价” 4) 出现登录页面,输入用户名和密码登录 5) 验证出现的页面包含以下信息“您需要先通过实名认证”。 在Firefox里执行上述步骤,前面4步的操作会被Selenium IDE忠实的记录下来,第5步验证怎么办?选中相应文字,点击鼠标右键,选择相应的命令,如下图所示(在Show All Available Commands里有更多的可用命令供选择):

基于selenium的web自动化测试

基于Selenium的Web自动化测试 1绪论 1.1引言 网络时代的到来和迅速普及,为软件产业带来了一场革命性的变化,基于Web 的应用系统已经开始逐步取代原来的单机版应用系统,成为当前和未来的软件系统开发和实施的主流。现在的Web应用系统结合了商业、数据库以及企业的运用,因此,对于Web应用系统的要求也愈来愈严格,它必须具备高度的扩展性,合理的执行效率,以及全天候安全强固的执行环境。也就是说,现在Web应用系统必须能够安全及时地服务大量的客户端用户,又能够长时间安全稳定地运行。而且由于interent的开放性和易访问性,在Web应用系统商业应用领域的竞争非常激烈。用户对网站的期望很高,如果网站无法做到快速加载、正确显示信息、即时反应并提供直观的浏览与简易的交互功能,用户就有可能转换门庭,去别的网站。因此,Web应用的测试至关重要。 但是由于Web应用系统具有分布、异构、并发和平台无关的特性,因而Web应用系统的测试要比普通程序的测试要复杂的多。 从功能测试角度看,与传统的应用软件相比,Web应用系统的独特之处主要有以下几点: 1.Web应用系统的组成实体多种多样。就HTML文档而言,用不同语言编写的脚本,各式各样的样式表及组件使得Web应用系统难以理解和测试。 2.Web应用系统中有大量的导航链接,确保系统能够根据用户的选择准确地显示用户需要的内容是Web测试的重要方面。 3.Web应用系统通过会有大量的Cookie等技术来保存用户的状态信息,确保系统对这些状态信息的正确管理也是Web测试的重要挑战。 4.Web应用系统的客户端及操作系统的多样性导致的兼容性问题,要求对各个环境进行测试。 5.Web应用系统客户端内容及结构更新快,新功能的不断加入不仅要对新加入功能进行测试,而且还要对原有功能进行回归测试。

Selenium自动化测试框架PPT_201605

公司内部测试分享 Selenium自动化测试交流 2016年5月.广州 QQ群:301934220

交易所类整体解决方案 产品说明

自动化测试的发展困境???

交流Email : zhifei.xie@https://www.sodocs.net/doc/d318454079.html, 国内自动化测试停步不前的困惑???? 重视程度不足与流程缺失。相对于手工测试来说,自动化测试初期投入比较 大。如果公司缺乏对自动化测试关注度与重视度,再加上自动化测试无法在 短期内受到明显效益,很多公司都会主动放弃自动化测试。 盲目地推行自动化测试。自动化测试无法适用于全部的测试任务,如果公司 盲目地推行功能自动化测试反而会收到不恰当的结果。初期投入巨额成本, 后期的维护成本呈几何提升,同时执行过程中,也可能没有出现自动化测试 的高效率。 自动化测试抱有过高的期望。部分公司只看到了自动化测试的理想效果,忽 略了自动化测试的局限性。当遇到挫折或问题,就会全盘否定自动化测试。

交流目的 为提高软件质量做一个交流探讨 为需要实行自动化测试时打下基础 帮助大家对selenium框架有一个基本了解

产品质量提升之道??? 1)全面理解自动化测试的本质与适用性,把控好自动化测试的度。 2)全面提高软件测试人员技术水平。提高测试效率、提高工作品质,是提高产品质量的一个重要有效手段。 3)将软件测试转移到软件质量控制方面。软件测试不仅指功能验证测试。本质上软件测试必须贯穿整个软件开发过程,软件测试是有效控制软件质量的重要一环。 4)把当前一些有效的测试工具、测试管理工具、项目管理工具的思想应用到项目实践中来,确保工具与测试思想、项目管理思想高度融合。

相关主题