引入:其实熟悉selenium的人肯定都对wire协议不陌生,因为我们知道,当我们在代码中使用WebDriver API 做一些操作的时候,它最终会转为一个基于wire协议的命令(Command)发送到浏览器,并且请求的内容都封装在json对象中,通过WebService调用浏览器,从而所有WebDriver API的调用都最后转为对浏览器的Web Service调用。我们这里就通过最简单的输入文
xPath的作用是选择xml文件中节点的路径。(1)路径表达式的约定"/"表示路径内部分隔符同一个节点有绝对路径和相对路径两种写法绝对路径必须以 “/"开头,而相对路径必须不以"/"开头”."表示当前节点".."表示当前节点的父亲节点(2)选择节点的基本规则nodename:表示选择所有子节点/:表示选择根节点//:表
这里从我们team的代码中来总结下常见的几种找页面 元素的方法:(1)通过WebElement的ID如果某个WebElement提供了ID,<input type="text" name="passwd"id="passwd-id" />(2)通过WebElement的name查找:WebElement element = d
其实WebDriver也提供了全局的隐式等待的功能,其代码如下:webDriver.manage().timeouts().implicitlyWait(20,TimeUnit,SECONDS);这句话是什么意思呢,它其实就是让webDriver有全局的隐式等待功能,翻译成白话文就是说,Hi ,webDriver,当你要查找某个WebElement元素,但是这个元素并没有马上出现的时候,请等待,因
在运行automation时候,经常会遇到的问题是,页面的元素加载需要时间,而这个时间是不确定的,但是你的执行是一直在一步步往下走,如果实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个WebElement,那么就会抛出NullPointer的异常。为了解决这种问题,尤其是RemoteWebDriver(不确定因素更多的情况) ,我们就需要用很高级的WebDriverWai
项目自动化测试要用到WebDriver,这里网摘一些和WebDriver相关的知识供自己参考。1.什么是Selenium 和WebDriver?Selenium 是一个浏览器的自动化操作框架。它主要由3个工具组成。1.Selenium IDE,是Firefox插件,支持用户的录制和回放。2.Selenium WebDriver,它提供了各种语言环境的API 来支持编写自动化应用程序。3.Selen
因为讨论下来,最终的DataProvider格式需要是一个json格式,所以我们还必须提供方法吧xml格式转为json格式,现在很多框架比如json-lib框架能很轻易的完成这个任务了。 /** * This class will read the xml file and then change it to a json object *@author cwang58 *@creat
我们分为3个方法依次对于<add_elements>,<update_elements>,<remove_elements>进行解析:对于<add_elements>内部遍历解析的代码如下:/** * add the new information which configured in original xml and finally gener
但是,我们这些动作指令信息毕竟是让测试用例数据的设计者告诉Engine怎样修改原始数据集合的,所以我们必须把这些信息分离出来,但是刚才一步骤,已经把这些片断移除了,那么怎么把这些信息拿到呢?很简单,不是我们有原始数据么,所以我们就可以对于原始数据的xml字符串,一个testcase,一个testcase的吧这些动作指令解析出来并且存放在相应的Value Object 列表中,以后我们只要根据这些列
因为我们在test_suite.xml中定义了多个动作指令,比如<add_elements>,<update_elements>等,他们指示让我们Engine来对最终数据进行操作,这些动作指令不是数据,因此,他们并不包含在我们最终的数据结果集中,所以我们必须对他们进行移除。所以我们用以下代码来进行移除工作:public class XMLManipulator {
因为在test_suite.xml中,我们多处使用了XInclude标记,他们会被申明在一个叫"http://www.w3.org/2001/XInclude" 的名字空间中,并且引入部分用xi:include来声明,我们这个类的作用就是把这些所有的<xi:include>的部分,都用被引入的文件插入和替换掉。/** * This class will hand
按照我们的架构,第一步是读取原始的xml文件到一个xml字符串中:/** * *@author cwang58 *@created date: Jun 10, 2013 */ public class XMLReader { private static final String LINE_SE
为了基于上文我们的xml文件的架构,对其进行解析,我自己写了一个DataProviderEngine作为解析xml文件的引擎,它主要的架构如下图:具体细节如下,为了节省时间,我直接复制我的英文邮件内容了:Step 1: The XMLReader read the raw test suite xml file (now we adopt the xml file ,since it is not
以前我们项目采用的自动化测试比较乱,主要有以下几点:1.所有的测试数据都是用一个单一的excel文件来维护的, 这个单一文件中每个测试用例的数据集都是一个sheet.这有以下的缺陷:(1)excel最多只能支持200个工作表(sheet),但是你每一个项目都要写若干个工作表,我们项目又多,所以很容易这个工作表文件达到上限,我们不得不用新的excel文件。(2)工作表很多的话,那么在工作表中切换变得
网上看了一篇英文帖子,讲解JUnit和TestNG框架的区别,挺好的,我这里翻译下。1.对于注解类的支持功能JUnitTestNG标注为类/方法为测试类和方法@Test@Test标注为在suite中所有测试之前运行无@BeforeSuite标注为在suite中所有测试之后运行无@AfterSuite标注为在测试之前运行无@BeforeTest标注为在测试之后运行无@AfterTest标注为在测试G
我们团队要做自动化测试,我上上星期帮我们QA搭建了一个selenium环境。一切都很顺利,反正这个都要教程嘛,结果当我们写好了自动化测试,然后去跑脚本时候,发现了以下问题:问题:我们明明已经配了Local Web Driver,而且也按照提示从官网上下了chrome的web driver,可是运行时候,它总是报说找不到chrome ,也打不开chrome 浏览器。这是为什么呢?结论:后来找了很久才
最近研究了下jasmine框架,收益颇丰。基于公司一位同事的文档,我这里列举下jasmine框架的一些特征。 一:介绍 Jasmine框架是一个行为驱动的开发框架,用于测试javascript代码,它不会依赖于任何其他的javascript框架,也不需要一个DOM,并且它有非常简单和清晰的语法。 二:适用范围 因为Jasmine框架不依赖浏览器,DOM,或者
QUnit是一个非常简单而且强大的单元测试框架,简单到稍微懂点javascript的人,5分钟不到就会了,以下就是这个框架的用法: 首先,既然是一个框架,肯定有框架的共有特征(框架的css->qunit.css,框架的js函数库->qunit.js,框架的HTML 显示页面->framework.html,我们按照规范放置在应该放置的地方,如下图所示:) 既然
The following 4 transaction based performance result is done by JMeter+Badboy tool. Support the scenario is as follows: Guest view products in estore -> Guest Add item to shopping c
Hi All: The following 4 request based performance result is done by JMeter. The test result is as follows: TC1->Ecshop Home Page: (500 requests /100 concurrency)  
Just want to share a good example of how to do unit test, Charles have done all unit test cases for CA modules and they are very professional, below is a snippet of one case. So let&rsq
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号