`

Selenium TestRunner和Core扩展

阅读更多
Selenium Test Runner
当我们建立了大量的Suite文件和Test文件,要进行大规模的测试执行时,采用Selenium IDE的方式就不怎么方便了,这是可以采用Selenium Test Runner模式。

再Selenium IDE工具栏中点击(play with selenium testrunnner)进入Selenium Test Runner
观察地址栏,发现其中有几个参数
chrome://selenium-ide-testrunner/content/selenium/TestRunner.html?test=/content/PlayerTestSuite.html&userExtensionsURL=&baseUrl=

test: 指定存放再本地或服务器上的Suite文件,本地文件可以用file://协议打开,服务器上的用http://协议打开
userExtensionsURL
baseUrl: 相对URL地址,在此设置www.google.cn后,open命令‘/’,打开的是www.google.cn页面。

selenium_suite.html文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://cn.calendar.yahoo.com/" />
<title>selenium_1</title>
</head>
<body>
<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"> 
<tbody>
<tr><td><b>Example one</b></td></tr>
<tr><td><b><a href="/home/xace/coding/selenium_case1.html">test case1</a></b></td></tr>
</tbody></table>
</body>
</html>


selenium_case1.html文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://cn.calendar.yahoo.com/" />
<title>selenium_case1</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">selenium_case1</td></tr>
</thead><tbody>
<tr>
	<td>open</td>
	<td>/</td>
	<td></td>
</tr>
<tr>
	<td>type</td>
	<td>username</td>
	<td>zhangyc.beijing</td>
</tr>
<tr>
	<td>type</td>
	<td>passwd</td>
	<td>不知道</td>
</tr>
<tr>
	<td>clickAndWait</td>
	<td>//input[@value='登录']</td>
	<td></td>
</tr>
<tr>
	<td>verifyTextPresent</td>
	<td>[登出, 我的帐户]</td>
	<td></td>
</tr>

</tbody></table>
</body>
</html>


url地址:
chrome://selenium-ide-testrunner/content/selenium/TestRunner.html?test=file:///home/xace/coding/selenium_suite.html&userExtensionsURL=,&baseUrl=http://cn.calendar.yahoo.com


再selenium/selenium-core/tests目录中,有更多的例子,可以通过
chrome://selenium-ide-testrunner/content/selenium/TestRunner.html?test=file://xxx/selenium/selenium-core/tests/TestSuite.html&userExtensionsURL=,&baseUrl=



/home/xace/.mozilla/firefox/tmug0k1u.default/extensions/{a6fd85ed-e919-4a43-a5af-8da18bda539f}
chrome://selenium-ide-testrunner/content/selenium/TestRunner.html


Selenium Core扩展及其应用

在实际应用中,我们会发现selenium core提供的命令不能完全满足深层次的需求。每个公司的业务和产品都或多或少存在差异,绝大多数外部的测试工具都不能完全满足深层次的测试需求,这时selenium提供了很好的扩充机制就派上用处了。

Seleniun的基本机制

1 核心代码在哪?
Selenium core是一个jar包,位于/home/{user}/.mozilla/firefox/xxxxxxx.default/extensions/{a6fd85ed-e919-4a43-a5af-8da18bda539f} ; C:\Documents and Settings\{user}\Application Data\Mozilla\Firefox\Profiles\xxxxxxx.default\extensions\{a6fd85ed-e919-4a43-a5af-8da18bda539f}。{user}是当前的系统用户,xxxxxx.dufault是序列。
用rar解压selenium-ide.jar,可以在contents\selenium\script\目录下找到一个文件selenium-api.js,我们之前用的命令(click select check等)就在此处,对应关键字doClick doSelect doCheck。

2 代码分析
do开头的命名方式表示该API是一个动作(action)命令。
Selenium.prototype.doClick = function(locator) {
    // 找到相应的DOM节点,通过id name xpath document等方式查找
    var element = this.browserbot.findElement(locator);
    // 实现点击DOM节点操作
    this.browserbot.clickElement(element);
};

browserbot的方法再在 selenium-browserbot.js中

3 对selenium命令进行扩展
动作命令API
在 selenium-api.js中加入
Selenium.prototype.doHello = function() {
    throw new SeleniumError("hello");
    // 执行到hello关键字时,在表格的第3列写入hello,并标红
};
测试文件
<tr>
	<td>hello</td>
	<td></td>
	<td></td>
</tr>


断言命令API
Selenium.prototype.isHello = function(text) {
    var originalText = "hello";
    if(originalText == text){
        return true;
    }
    return false;
};
测试文件
<tr>
	<td>verifyHello</td>
	<td>hello</td>
	<td></td>
</tr>
<tr>
	<td>verifyHello</td>
	<td>hi is not hello</td>
	<td></td>
</tr>

Selenium.prototype.getHello = function(text) {
    return "hello";
};
测试文件
<tr>
	<td>verifyHello</td>
	<td></td>
	<td>hello</td>
</tr>
<tr>
	<td>verifyHello</td>
	<td></td>
	<td>hi is not hello</td>
</tr>
分享到:
评论

相关推荐

    selenium html runner 3.13.0

    To run Selenium tests exported from the legacy IDE, use the Selenium Html Runner.

    免费 selenium-html-runner-3.5.2

    免费 selenium-html-runner-3.5.2

    seleniumtest.exe

    seleniumtest.exe

    selenium-html-runner-3.5.0.jar

    可用于selenium自动化测试中的一个jar包,selenium-html-runner-3.5.0.jar

    selenium-html-runner-3.4.0

    selenium-html-runner,测试脚本录制

    nodejs-selenium-runner:一个用于下载和启动Selenium Server的库。 改写https

    nodejs-selenium-runner 一个用于下载和启动Selenium Server的库。 重写 ,支持在定义的端口上运行。 一个用于下载和启动Selenium Server的库。 var seleniumRunner = require ( 'selenium-runner' ) ...

    SeleniumTest2.zip

    标题"SeleniumTest2.zip"暗示了这是一个包含与Selenium测试相关的资源的压缩文件,而描述中的"自动化代码框架Python"进一步确认了这个项目是使用Python语言实现的自动化测试框架,特别是针对Web应用。Selenium是一个...

    Selenium test flash

    FlexUISelenium是Selenium RC的一个扩展,专门设计用于与Flex应用程序的UI组件和方法进行交互和测试。通过这个扩展,测试人员可以编写针对Flex UI的自动化测试脚本,如同处理HTML元素一样操作Flex组件。 以下是一个...

    selenium-core-0.8.2.zip

    Selenium Core 是一个用来测试 Web 应用的测试工具。Selenium Core的测试直接运行在浏览器中,就像真实的用户在操作一样。它可以分别运行在 Windows,Linux 和 Macintosh 系统的 Internet Explorer,Mozilla 和 Fire...

    Coach_Selenium_Test

    "Coach_Selenium_Test"这个项目主要关注的是使用Selenium进行自动化测试的方法和实践。Selenium是一个广泛应用于Web应用测试的开源工具集,它允许开发者用多种编程语言编写测试脚本,如Java、Python、C#等,来模拟...

    Selenium Core实例所用的JavaScript代码

    通过以上分析,我们可以看到Selenium Core在实现自动化测试时,深度集成了JavaScript,不仅利用了其强大的浏览器控制能力,还通过自定义脚本实现了高度的灵活性和扩展性。这对于Web应用的测试工程师来说,是非常宝贵...

    selenium基础入门

    Selenium 可以在两种模式下运行:Test Runner(Selenium-Core)和Driven(Selenium-RC)。Test Runner模式的测试脚本直接在浏览器中运行,而Driven模式下,一部分测试逻辑在浏览器外部执行,这通常需要编写编程语言...

    Selenium最新版的扩展

    总的来说,Selenium的这次扩展更新为用户提供了一个更强大的自动化测试框架,使得Web应用程序的测试工作变得更加高效和精确。无论是对于Selenium初学者还是经验丰富的开发者,这都是一个非常有价值的更新,值得大家...

    junit与selenium集成使用手册

    JUnit 和 Selenium 是两款广泛使用的自动化测试工具,JUnit 主要用于 Java 应用程序的单元测试,而 Selenium 则侧重于 Web 应用的自动化测试。本文将详细介绍如何集成 JUnit 和 Selenium,包括环境配置以及实现一个...

    test_selenium01.rar

    通过深入学习和实践这个"test_selenium01"项目,你将能够熟练掌握使用Python+Selenium+Unittest进行Web自动化测试的基本技能,为后续的自动化测试工作打下坚实的基础。在学习过程中,建议结合真实项目需求,不断尝试...

    selenium-selenium-4.5.0.zip源码

    7. **Selenium Grid**: 用于扩展测试执行能力,它可以将测试分发到多台机器上并行运行。源码中包含了节点注册、任务分配和结果聚合的实现。 8. **多语言支持**: Selenium 提供了多种语言的绑定,如 Python 的 ...

    selenium-server-standalone和Selenium-java的jar包

    在这个主题中,我们将深入探讨"**selenium-server-standalone**"和"**Selenium-java**"这两个jar包,以及它们在Java+Selenium自动化测试中的作用。 首先,**selenium-server-standalone.jar**是Selenium WebDriver...

Global site tag (gtag.js) - Google Analytics