![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
web UI自动化测试
文章平均质量分 75
wangxin0314
一只站在树上的鸟儿,从来不会害怕树枝会断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力做好现在。
展开
-
Web UI自动化测试中处理页面元素过期问题
不多说先上代码:package ec.qa.autotest.ui.common.action;import java.util.List;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.StaleElementReferenceExcepti原创 2015-12-08 16:42:35 · 3699 阅读 · 0 评论 -
运行测试用例集过程中在jenkins控制台打印当前用例测试结果(testng)
由于测试用例集是使用jenkins调度的,在jenkins控制台中只能看到所有用例执行结束后testng的汇总报告信息,在测试运行过程中不能直观看到每个测试用例的运行结果,比如我们比较关心失败的用例 在用例结束后应该立即可以看到错误信息和堆栈信息,为了在jenkins控制台直播测试运行情况时,每一个用例结束都打印当前用例的测试结果,在@AfterMethod 方法中做如下调整.:/**原创 2015-12-08 17:50:10 · 5169 阅读 · 0 评论 -
webdriver源码分析
1.weElement接口有3个实现类,如果在PC做自动测试 ,并需要打开浏览器界面操作 使用的是: remoteWebElement.2.想让webdriver运行在内容中而不开浏览器 webdriver ,我们一般是使用HtmlUnitDriver类来实例化driver,HtmlUnitDriver类操作元素用的是HtmlUnitWebElement.3.为测试操作添加事件 使用原创 2015-12-08 18:08:39 · 1873 阅读 · 0 评论 -
Web UI自动化测试框架 使用递归一次性加载配置文件信息(.properties)
1.递归加载配置信息代码:(需要注意的是 不同的配置文件不要有相同的key,一般key的命名使用命名空间方式如以下命名方式:#页面加载时间initDriver.webdriver.pageloadtime = 20#查找元素超时时间(全局)initDriver.webdriver.scanelementtime = 20package ec.qa.autotest.ui.util原创 2015-12-08 18:17:19 · 1158 阅读 · 0 评论 -
Webdriver 最大化Chrome浏览器报:Timed out receiving message from renderer处理办法
chrome 浏览器在被最大化时会出现如下错误信息,但不影响CASE运行:[5.969][SEVERE]: Timed out receiving message from renderer: 0.681处理方法,老外给出了比较好的解决方式: We were seeing something similar with Chrome and the issue came d原创 2015-12-08 16:58:57 · 21588 阅读 · 2 评论 -
Web UI 优化自动化测试用例的稳定性
Web UI自动化测试的一个很重要的问题就是整个测试的稳定性,经常在运行测试的时候出现这样或那样的问题,而且大多都是稳定性问题,而非BUG,最近我针对同事的用例的稳定性问题做了些优化策略,今天跑了 500个用例 没有一个出现稳定性问题,当然 可能有运气成分吧 呵呵 总共运行时间 5小时,实际的测试用例有70-80个左右 是循环跑出了500次 特此声明一下 不然有人会质疑,UI自动化 以回归 和冒烟原创 2015-12-08 18:51:53 · 3518 阅读 · 0 评论 -
通过WebElement.sendKeys()来研究wire协议
引入:其实熟悉 selenium 的人肯定都对 wire 协议不陌生,因为我们知道,当我们在代码中使用 WebDriver API 做一些操作的时候,它最终会转为一个基于 wire 协议的命令(Command) 发送到浏览器,并且请求的内容都封装在 json 对象中 , 通过 WebService调用浏览器, 从而所有 WebDriver API 的调用都最后转为对浏览器的 Web S转载 2015-12-09 17:27:38 · 1828 阅读 · 0 评论 -
Webdriver 自动化测试使用XML+DOM4J维护测试数据
测试工程添加如下XML文件,并在POM中引入DOM4J的包: dom4j dom4j 1.6 XML结构: 使用DOM解析上述XML文件:public class ParseDataXml { private static String testDataFielsuffix = "原创 2016-01-14 11:03:36 · 734 阅读 · 0 评论 -
JAVA-责任链模式
JAVA-责任链模式责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。==引用自在阎宏博士的《JAVA与模式》责任链:责任链模式涉及到的角色如下所示: ● 抽象处理者(H原创 2015-12-13 16:46:21 · 385 阅读 · 0 评论 -
自动化测试使用mybatis更新数据库信息实例
自动化测试使用mybatis更新数据库信息实例代码如下:mybatis配置文件: DAO层接口package ec.qa.autotest.ui.dao;import java.util.List;import ec.qa.autotest.ui.dao.model.SupplierInfo;原创 2015-12-29 18:06:12 · 1682 阅读 · 3 评论 -
利用反射简单模拟Spring的控制反转(Ioc)和依赖注入(DI)
利用反射简单模拟Spring的控制反转(Ioc)和依赖注入(DI)1.配置文件(.properties)中配置要扫描的包:#扫描page对象的包init.pageobj.Package = ec.qa.autotest.ui.admin.portal.pageobject,ec.qa.autotest.ui.common.action,ec.qa.autotest.ui.supplier.portal.pageobject2.代码实现:自定原创 2015-12-08 17:23:14 · 2322 阅读 · 1 评论 -
基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)
基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)自动化测试系统及应用架构原创 2015-12-08 16:32:10 · 13622 阅读 · 28 评论 -
Webdriver UI自动化测试定义工具类方便用例获取资源
Webdriver UI自动化测试定义工具类方便用例获取资源1.测试用例中需要上传图片的时候,图片作为测试数据,维护在测试数据文件中:2.为了方便用例里面随用随拿 定义如下工具类 :package ec.qa.autotest.ui.utility;/** * @author xin.wang * 获取测试图片地址 */public class PictureUtil { private static Strin原创 2015-12-17 14:49:45 · 1226 阅读 · 0 评论 -
Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例
Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例定义浏览器驱动实例的接口:package ec.qa.autotest.ui.utility.base;import org.openqa.selenium.remote.RemoteWebDriver;/** * 实例化目标浏览器接口 * @author xin.wang * */public interface IBrowserDriverBase { public原创 2015-12-16 18:10:52 · 2150 阅读 · 8 评论 -
webdriver UI自动化测试执行JS脚本
webdriver UI自动化测试执行JS脚本不管是selenium RC 还是 webdriver 其在浏览器端 最终还是通过JS来操作页面元素实现自动化测试的(可参见2者的实现原理),在做自动化测试的时候,如果webdriver现有的java API 不满足测试需要的时候,我们可以尝试执行js脚本在协助自动化测试的运行,还好webdriver提供了执行JS脚本的接口:webdriver.executeScript(String jsCMD原创 2015-12-25 17:04:41 · 3820 阅读 · 0 评论 -
系统登录页面拉动验证滑块进行验证
有如下登录页面:登录过程中输入账号密码后 需要拉动图中 滑块 后 才可登录成功:如何使用webdriver 实现拉动滑块的功能?代码如下:创建公共功能类并加入方法:public class ActionUtil { private static Actions act; public static void setAction(WebDriver原创 2016-06-22 10:29:47 · 16582 阅读 · 3 评论 -
做好软件测试需要具备的思维方式
最近部门来了好几位应届毕业生加入团队,我们也大张旗鼓的组织了集中式的培训,其中我需要对关于测试工作进行简介,在培训内容中,我特地整理和回顾了做好软件测试需要具备的思维方式,当时也就4张PPT。在此,我再详细整理出文字内容也分享出来给广大的同行。首先,从需求,用户及研发角度考虑,要想为产品贡献最大的力量,就不能只专注于做好测试保证质量这一个方面,而应该是从多个角度全面衡量。 从图转载 2015-12-30 19:43:10 · 758 阅读 · 0 评论 -
使用JAVA Robot 扩展Webdriver 模拟键盘鼠标操作
使用 Robot 类来操作 Keys 没有枚举出来的按键操作1.在 WebDriver 中,Keys 枚举出了键盘上大多数的非字母类按键,从 F1 到 F10,NUMPAD0 到 NUMPAD9、ALT\TAB\CTRL\SHIFT 等等,你可以通过以下链接查看 Keys 枚举出来的所有按键,Enum Keys。 但是并没有列出键盘上的所有按键,比如字母键 a、b、c、d … z,原创 2015-12-17 16:58:12 · 2896 阅读 · 0 评论 -
关于webdriver上传文件功能的一些补充
最近有同事反应做公司供应商管理平台上传产品的时候发现,上传图片 使用 webdriver的 sendkeys不管用,后来从浏览器打开开发者工具看看 这个块的前端代码 发现如下问题: 开发在这里用了 button 而不是 input 当然这不是关键,关键在与 点击此button后 需要出发一个js事件 ngf-select="choseFile($file,'mai原创 2015-12-09 16:04:45 · 2557 阅读 · 0 评论 -
Webdriver+Testng自定义html测试报告
testng自带的html测试报告不是很好用,打开慢,内容简单,基本不具备什么参考价值,所有想到自己重新定义一份html格式的报告,可以参考jsp转换成html页面的原理+testng监听器实现。代码如下:1.实现testng listener接口:public class testReport implements ITestListener2.实现ItestListen原创 2015-12-11 10:24:14 · 3945 阅读 · 0 评论 -
Webdriver+Testng实现测试用例失败自动截图功能
在自动化测试中,如果有测试用例运行失败,我们想到使用截图方式对页面出问题的现场进行“照相”,方便后继的问题排查。1.定义一个截图类实现具体的截图操作:package ec.qa.autotest.ui.testng.listener;import java.io.File;import java.io.IOException;import java.lang.reflect原创 2015-12-10 11:20:37 · 6577 阅读 · 0 评论 -
JAVA-模板设计模式
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。(引用自阎宏博士的《JAVA与模式-模板方法》。模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。原创 2015-12-13 13:03:48 · 1411 阅读 · 2 评论 -
JAVA-原型模式
原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.原型模式中的拷贝分为"浅拷贝"和"深拷贝":浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员原创 2015-12-14 13:43:54 · 624 阅读 · 0 评论 -
白盒测试技术含量不一定比黑盒测试高
白盒测试技术含量就比黑盒测试高?最近在群里发现这个比较有意思,某人一说自己在做白盒测试,其余的人顿生景仰之情,急急称牛人乎,米多乎!首先我们看看定义:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内原创 2015-12-13 14:14:45 · 2960 阅读 · 0 评论 -
JAVA-建造者设计模式
文章转自:http://haolloyin.blog.51cto.com/1177454/333155/建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景:1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2、当构造过程必须允许被构造的对象有不同的表示时。通用类图转载 2015-12-13 13:48:49 · 491 阅读 · 0 评论 -
基于QTP的自动化测试留下一份向数据库自动导入测试数据的VBS脚本
当时考虑的不多 有很多需要改进的地方,不过必定是自己费神写的,虽然早已转战开源工具,还是留下做个纪念吧注:测试人员只需要把数据EXCEL编辑好即可,测试框架会自动将数据导入数据库。 '----------------------------------说明信息-------------------------------------------原创 2015-12-09 12:24:50 · 599 阅读 · 0 评论 -
实现testNg的retry机制
Testng 的重试机制 在不写代码的情况没有提供可配置方式,需要自己实现其提供的接口,并以监听器的方式提供出来才可使用,具体步骤如下:1.首先需要实现 IRetryAnalyzer接口package ec.qa.autotest.ui.testng.listener;import org.testng.IRetryAnalyzer;import org.t原创 2015-12-08 15:25:52 · 3788 阅读 · 0 评论 -
设计模式的分类及原则
设计模式(Design Patterns) ——可复用面向对象软件的基础设 计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计转载 2015-12-14 12:07:41 · 631 阅读 · 0 评论 -
泛型的内部原理:类型擦除以及类型擦除带来的问题
一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉转载 2015-12-13 07:16:06 · 2097 阅读 · 0 评论 -
Webdriver UI自动化测试使用mybatis访问数据库
自动化测试 有时需要访问数据库进行数据对比,这里我简单介绍一下Mybatis的应用:1.1MyBatis简介 MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hi原创 2015-12-25 16:24:19 · 1612 阅读 · 0 评论 -
Webdriver自动化测试使用Xpath-Helper调试页面元素的xpath
在做自动化测试过程中如果有的元素必须用XPATH去定位,这里给大家提供一个非常方便的调试XPATH的工具,可以在定位元素的同时在被测页面直接调试XPATH:1.首先在google网上应用商店的搜索栏输入 :"xpath-helper": 回车搜索。2.在搜索结果列表中选择 xpath-helper:3点击“添加至chrome”4.在googl原创 2015-12-11 15:47:34 · 5659 阅读 · 0 评论 -
Webdriver UI自动化测试自动装配测试用例所需的数据对象
自动化测试中,维护测试数据 是一项很重要的工作,为了达到用例和测试数据的分离,我们一般会把数据存储在外部文件 或 数据库,为了简化测试,测试用例编写人员想只需要维护测试数据文件,在用例里通过简单声明,即可随意读取本次测试用例所需要的测试数据,我的思路还是为测试用例自动注入测试数据对象。代码如下:定义测试对象标签,只要在用例里的类域加了此标签 测试框架便认为此域变量是个测试数据对象:pa原创 2015-12-15 19:04:22 · 2090 阅读 · 0 评论 -
Webdriver UI自动化测试 实现自动登录
自动化测试实施过程中,有测试需求:第一个用例时登录用例,只要登录成功,后面的用例就不需要重复登录。随机想到了每次请求目标网站,携带上次登录成功后服务端返回的cookie,来实现绕过登录:保持cookie的工具类:package ec.qa.autotest.ui.utility;import org.openqa.selenium.Cookie;/** * @author原创 2015-12-17 15:26:38 · 4278 阅读 · 0 评论 -
实现testng监听器统一修改用例运行次数,随机执行测试用例
/** * @author :xinrui.wx * @version create time:Feb 23, 2017 7:09:30 PM description */public class TestMethodListener implements IMethodInterceptor { @Override public List intercept(List metho原创 2017-02-28 12:39:44 · 1990 阅读 · 1 评论