安卓软件

  • 小说漫画
  • 社交通讯
  • 视频直播
  • 出行导航
  • 生活休闲
  • 主题壁纸
  • 拍照美化
  • 新闻阅读
  • 办公学习
  • 实用工具
  • 健康运动

安卓游戏

  • 益智休闲
  • 冒险解谜
  • 动作格斗
  • 策略塔防
  • 角色扮演
  • 音乐舞蹈
  • 赛车竞速
  • 卡牌决斗
  • 模拟经营
  • 橙光游戏

文章速递

  • 游戏攻略
  • 软件教程
  • 热点新闻
  • 综合阅读
您的位置: 首页> 电脑应用> 行业软件
Selenium自动化测试工具 v3.9.1 免费版

Selenium自动化测试工具 v3.9.1 免费版

一键举报
  • 版本:免费版
  • 平台:电脑
  • 类型:行业软件
  • 发布:2022-10-07
  • 大小:68.78MB
  • 语言:中文
下载资源有问题,请使用举报功能,本站会及时处理。

详情

Selenium是一款专业的、免费开源的Web自动化测试工具集,能够带来IDE、Grid、RC等丰富的工具,并且还能够提供简单的脚本录制、编辑、回放功能,也支持直接运行在浏览器中,就像真正的用户在操作一样。

Selenium

Selenium是能够支持C、java、ruby、python等多种语言的跨平台电脑编程测试软件,通过该软件能够把测试用例分布到不同的测试机器的执行,让你可以更好进行检测操作,而且还拥有成熟的社区、大量的文档支持,可以节省构建新库和维护脚本的时间。

Selenium特色

1、免费开源

免费开源,对商业用户也没有任何限制

2、支持多语言

C、java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试

3、支持多平台

windows、linux、MAC

4、支持多浏览器

ie、ff、safari、opera、chrome

5、分布式

可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能

6、技术支持

成熟的社区、大量的文档支持

原理介绍

Selenium 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行。如下图所示:

原理介绍

之所以引入这个代理 Remote Control Server 是因为“同源策略”的限制,通过这个代理服务器来“欺骗”远程 Server,达到使其以为是从同一个地方 load 代码以正确返回请求数据的效果。

流程说明:

客户端建立与 selenium-RC server 的连接。

Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码

将 Selenese 代码传到客户端的 Selenium-Core 中。

Selenium-Core 翻译并解析执行用户录制的操作。

让代理 Server 进行通讯

Remote Control Server 负责跟远程 Web 应用服务器进行通讯。

操作完成,显示结果,并执行下一指令。

以上就是 Selenium Remote Control 的执行原理,接下来的章节中将一步步以图例加说明的方式快速说明如何使用 Selenium 来录制脚本,导入 Java 工程,然后定期维护工程。

selenium IDE安装

为了方便简洁,我们就按照下图的数字标记介绍:

selenium IDE安装1

1、文件:创建、打开和保存测试案例和测试案例集。编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。Options : 用于设置seleniunm IDE。

2、用来填写被测网站的地址。

3、速度控制:控制案例的运行速度。

4、运行所有:运行一个测试案例集中的所有案例。

5、运行:运行当前选定的测试案例。

6、暂停/恢复:暂停和恢复测试案例执行。

7、单步:可以运行一个案例中的一行命令。

8、录制:点击之后,开始记录你对浏览器的操作。

9、案例集列表。

10、测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。

11、查看脚本运行通过/失败的个数。

12、当选中前命令对应参数。

13、日志/参考/UI元素/Rollup

日志:当你运行测试时,错误和信息将会自定显示。

参考:当在表格中输入和编辑selenese命令时,面板中会显示对应的参考文档。

UI元素/Rollup:参考帮助菜单中的,UI-Element Documentation。

selenium为我们录制的脚本不是100%符合我们的需求的,所以,编辑录制的脚本是必不可少的工作。

1、编辑一行命令或注释。

在Table标签下选中某一行命令,命令由command、Target、value三部分组成。可以对这三部分内容那进行编辑。

selenium IDE安装2

2、插入命令。

在某一条命令上右击,选择“insert new command”命令,就可以插入一个空白,然后对空白行进程编辑。

selenium IDE安装3

3、插入注解

以上面同样的方式右击选择“insert new comment”命令插入注解空白行,本行内容不被执行,可以帮助我们更好的理解脚本,插入的内容以紫色字体显示。

selenium IDE安装4

4、移动命令或注解

有时我们需要移动某行命令的顺序,我们只需要左击鼠标拖动到相应的位置即可。

selenium IDE安装5

命令格式

主要由三部分组成:

command 操作命令

target 操作对象,通常是页面及页面元素

value 作为断言的值

1、元素locator的访问方式:

1)id=id,假如元素id是username,则target直接写username即可

2)name=name,可以通过name直接获得第一个该名称的元素

例如:username

name=username

3)dom=javascript表达式:

例如:dom=document.forms['myForm'].myDropdown

dom=document.images[56]

dom=function foo() { return document.links[1]; }; foo();

4)xpath=xpath表达式,使用xpath表达式来定位一个元素。

例如:xpath=//img[@alt='The image alt text']

xpath=//table[@id='t1']//tr[4]/td[2]

xpath=//a[contains(@href,'#id1')]

5)link=textPattern

例如:link=新闻

主要的访问方式即以上几种。

2、常用Actions

1)open(url)

接收一个参数url,即command=open, target=url

2)type(locator,value)

给locator指定的元素或属性赋值以value

3)click(locator)

单击一个链接、按钮、checkbox或radio等等,locator即元素定位

4)clickAndWait(locator)

单击一个链接、按钮等等元素,单击后等待新的页面加载

我们的表单提交,就可以用这个方法来单击submit按钮。

类似的方法还有selectAndWait、typeAndWait、focusAndWait……

5)verifyLocation(pattern)

校验当前页面的绝对路径(url)是否与pattern匹配,关于pattern的解释,我们在下面具体说明。

6)verifyValue(locator, pattern)

校验指定元素的值是否与指定pattern匹配

7)verifyVisible(locator)

校验指定元素是否可见,如果当前元素的style="display:none",即不可见。

8)verifyTextPresent(pattern)

校验当前页面是否出现该文字

9)verifyChecked(locator)

用于校验checkbox是否被选中

10)verifyAttribute(locator, pattern)

校验指定的元素属性值,是否匹配pattern

例如:verifyAttribute(link=All Search Results for "bike"@href, 'glob:*/search/bike?c=0*')

即校验指定的link的href属性是否匹配"glob:*/search/bike?c=0*"

11)fireEvent(locator,eventName)

用于调用locator指定的元素的指定eventName的事件,例如:

fireEvent(userLoginName,blur),即调用文本框userLoginName的失去焦点事件

以上是较为常用的几个方法,还有许多方法的详细介绍可以参见:http://seleniumhq.org/projects/core/reference.html

3、pattern的写法

在firefox的selenium IDE中,方法的参数pattern,即匹配的文本,共有三种匹配方式:

1)exact:string

精确匹配,必须完全匹配当前字符串

2)regexp:regexp

正则表达式匹配,这里主要是针对javascript中支持的正则表达式

3)glob:pattern

通配符匹配,*表示任意长度任意字符串,表示任何单个字符,

例如方法 verifyLocation(*/search?key=bike&c=*),即开头的域名部分和之后可能附带的一些参数都做了忽略。

需要说明的是:这里pattern的写法,仅仅是在IDE工具,即用浏览器以html方式直接运行脚本执行测试案例的方式中才有效。在后台test case中,只能使用equals或者matches的方式,才能验证。

Selenium的Java编程基本语法

在Selenium的基本语法中首先是需要定位到页面元素的,Selenium通过找寻到界面元素然后触发相应的时间,通过页面元素变化判断是否执行了相应的操作。

可以通过页面元素的属性获取相应的页面元素。

1、通过Identifier(id)定位元素

所给出的定位的HTML元素必须要有identifier,如果没有就会报告未找到相应元素的错误。通过ID来标识可以确定唯一性。

WebElement ele = By.id("idName");

只有当你明确知道元素的id属性,才能使用。

2、通过Name定位元素

使用id定位元素固然方面,但是id并不是html元素必须的,我们可以使用Name定位元素位置。

使用Name定位元素的位置,会匹配第一个与Name匹配的元素。如果页面中有多个相同的Name,可以使用更多的筛选器进行元素筛选的细化。

WebElement ele = By.Name("name");

只有明确知道原属的那么,才能使用。

3、通过Xpath定位元素

在一些情况下无法得知页面元素的id和name,还可以使用xpath从已知节点开始定位相应的元素。

绝对路径进行定位 xpath=/html/body/form[1]

通过元素的相应属性定位例如xpath=//form[@id='loginForm'] 表示从根节点开始查找一个form元素她包含一个属性是id并且里面的值为loginForm

找到某一个元素下相应的子元素 xpath=//form[input/@name='username'] 找到Form表单下面的input元素并且该元素有一个属性name且该name的值是username。

找到第一个指定的元素 xpath=//input[@name='username'] 扎到第一个input元素里面有一个name属性并且该属性值为username

还可以使用更加细分的查找 xpath = //input[@name='continue'][@type='button'] 找到input标签,1.该标签有一个name=continue属性和type=button属性的元素。

4、通过连接定位元素

WebElement ele = By.LinkText("xxxx");

当知晓相应的链接类容就可以定位到相应的元素。

5、通过DOM元素定位元素

DOM元素是HTML的基本元素,而且只有dom定位可以直接通过document

dom=document.getElementById('loginForm')

dom=document.forms['loginForm']

dom=document.forms[0]

document.forms[0].username

document.forms[0].elements['username']

document.forms[0].elements[0]

document.forms[0].elements[3]

6、通过tagName,通过标签名称进行定位

List eles = By.TagName("tagname");

在一个页面中相同的tag标签太多了,如果仅适用单个tagname查询会找到一个列表。

7、通过Css进行定位(Cascading Style Sheets)

css=form#loginForm

css=input[name="username"]

css=input.required[type="text"]

css=input.passfield

css=#loginForm input[type="button"]

css=#loginForm input:nth-child(2)

选取元素方法

selenium提供如下强大的定位元素的方法。

id=id

name=name

dom=javascriptExpression

xpath=xpathExpression

link=textPattern

css=cssSelectorSyntax

1、通过ID,name选择元素 : 如 selenium.type("id=q","百度"); selenium.type("name=search","百度")

2、link= 根据链接文字来操作:如 selenium.click("link=个人资料");

3、根据XPath来选择元素 :XPath Checker

* xpath=//img[@alt='The image alt text']

* xpath=//table[@id='table1']//tr[4]/td[2]

* xpath=//a[contains(@href,'#id1')]

* xpath=//a[contains(@href,'#id1')]/@class

* xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td

* xpath=//input[@name='name2' and @value='yes']

* xpath=//*[text()="right"]

如:selenium.type("xpath=//input[@name='user.email']", "xxx@123.com"); // 向input中type为text的栏位键入信息

selenium.check("xpath=//input[(@name='user.sex')and(@value='男')]");// 向input中type为radiod的 选取

4、dom选择

* dom=document.forms['myForm'].myDropdown

* dom=document.images[56]

* dom=function foo() { return document.links[1]; }; foo();

5、css选择器

这个不常用,它可以支持css2, css3选择器

* css=a[href="#id3"]

* css=span#firstChild + span

使用selenium这个对象来进行测试

1、获取标:assertEquals("Insert title here", selenium.getTitle());

2、判断页面是否存在一个user.email元素:assertTrue(selenium.isElementPresent("xpath=//input[@name='user.email']"));

3、得到文本框里的文字:assertEquals(selenium.getValue("xpath=//input[@name='user.username']"),"xxxaas");

4、测试check box:assertTrue(selenium.isChecked("xpath=//input[(@name='user.sex')and(@value='男')]"));

5、点击提交按钮:selenium.click("xpath=//input[@type='button']");

6、等待页面载入:selenium.waitForPageToLoad("2000");

7、验证指定文本出现在提交给用户的页面上:assertTrue(selenium.isTextPresent("验证码输入有误,请核实后再输入"));

8、判断下拉框里选择了哪个选项:assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1");

9、如何测试一些错误消息的显示? assertTrue(selenium.getBodyText().indexOf("错误消息")>=0);

getBodyText 返回的时浏览器页面上的文字,不回包含html 代码的,如果要显示html 代码,用下面这个:selenium.getHtmlSource()。

相关软件

软件截图

  • Selenium自动化测试工具 v3.9.1 免费版0
  • Selenium自动化测试工具 v3.9.1 免费版1

对于您的问题快深感抱歉,非常感谢您的举报反馈,小编一定会及时处理该问题,同时希望能尽可能的填写全面,方便小编检查具体的问题所在,及时处理,再次感谢!