自动化测试
文章平均质量分 70
wangxin0314
一只站在树上的鸟儿,从来不会害怕树枝会断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力做好现在。
展开
-
设计模式的分类及原则
设计模式(Design Patterns) ——可复用面向对象软件的基础设 计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计转载 2015-12-14 12:07:41 · 640 阅读 · 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 · 2182 阅读 · 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 · 3833 阅读 · 0 评论 -
java 解析 yaml
当前还在维护的YAML解析器/生成器有:SnakeYAML完整的YAML 1.1解析器,尤其是SnakeYAML能够分析来自于规范的所有示例支持Unicode,包括UTF-8/UTF-16的输入/输出为序列化和反序列化本地的Java对象提供了高级API支持YAML类型库中的所有类型比较理性的错误信息YamlBeans:支持YAML 1.0和1.1FasterXML/jackso转载 2016-06-15 23:22:36 · 6013 阅读 · 1 评论 -
SpringMVC 使用JSR-303进行校验 @Valid
SpringMVC 使用JSR-303进行校验 @Valid使用注解一、准备校验时使用的JARvalidation-api-1.0.0.GA.jar:JDK的接口;hibernate-validator-4.2.0.Final.jar是对上述接口的实现;log4j、slf4j、slf4j-log4j 二、编写需要校验的bean转载 2016-07-23 15:57:51 · 431 阅读 · 0 评论 -
系统登录页面拉动验证滑块进行验证
有如下登录页面:登录过程中输入账号密码后 需要拉动图中 滑块 后 才可登录成功:如何使用webdriver 实现拉动滑块的功能?代码如下:创建公共功能类并加入方法:public class ActionUtil { private static Actions act; public static void setAction(WebDriver原创 2016-06-22 10:29:47 · 16627 阅读 · 3 评论 -
破坏性测试
•为保证应用的稳定性与较好的用户体验性,需要其具备有较好的容灾能力,即在恶劣的应用环境中,依赖方不可用时,依旧能够有友好的信息返回及界面展示••测试需模拟各种可能的恶劣环境情况,目前可以从依赖的应用不可用、依赖的应用服务不可用,服务对应的某个方法不可用,或依赖的缓存失效等多个维度进行考虑••传统手工测试,依赖修改服务配置文件中的版本来达到目的,对应效率低,成本高,不可持续化,且仅能原创 2016-08-10 10:50:33 · 6823 阅读 · 0 评论 -
java BigDecimal 和DecimalFormat用法
java.math.BigDecimal不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。与之相关的还有两个转载 2016-07-19 12:45:35 · 3912 阅读 · 0 评论 -
关于DevOps,你不知道的那些事儿
关于DevOps,你不知道的那些事儿本文中我们将会讨论一些人们对DevOps的误解,DevOps不是一个角色,一个资格,一个头衔,它是一种文化转变,是一种更快地构建可靠性更高、质量更好的软件的运动。关于DevOps,还有哪些你不知道的事儿?一起来看看。在本文中我们将会讨论一些人们对DevOps的误解,同时会介绍一个能够带来DevOps文化转变的流程。转载 2016-12-21 14:58:50 · 736 阅读 · 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 · 2004 阅读 · 1 评论 -
java 使用javassist 动态修改注解的值
如下实例: @Test public void aetTestCaseAtrributes() throws NotFoundException { ClassPool pool = ClassPool.getDefault(); // 获取需要修改的类 CtClass ct = pool.get("com.tmall.test.scv.testcases.SCVDRCSc原创 2017-02-23 19:29:56 · 7520 阅读 · 1 评论 -
敏捷测试与传统测试的区别与最佳实践
敏捷测试并不是一种新的测试类型,也不是一个新的测试阶段,更不是一种全新的测试方法论。通俗地讲,在敏捷开发过程中进行的测试就叫敏捷测试。 它是一套测试解决方案、一组实践或者由一定顺序的测试活动构成的特定的测试流程。是为了顺应敏捷开发方法、力求达到质量和效率平衡的一系列的测试实践。 Wikipedia是这样描述敏捷测试的:敏捷测试是遵守敏捷开发原则之下的软件测试实践,需要跨功能敏捷转载 2017-03-08 11:20:32 · 1318 阅读 · 0 评论 -
用 Python 写爬虫时应该注意哪些坑
1. 添加user-agent,header。避免一开始就被屏蔽掉。推荐用urllib2,requests(最近才用这个,发现很好用)2. 编码用utf-8,本地存储的时候用codes.open 来保存中文字符3. lxml解析的速度要比beautifulsoup快的多4. 如果beautiful和lxml都不能抓到你想要的网页内容,就的用最原始的方法---正则表达式,所以玩爬虫,正则转载 2018-01-10 17:21:18 · 1495 阅读 · 0 评论 -
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 · 1231 阅读 · 0 评论 -
基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)
基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)自动化测试系统及应用架构原创 2015-12-08 16:32:10 · 13659 阅读 · 28 评论 -
自己重新实现QTP封装的一些常用的方法
Function Check_ComboBox_ItemValue(objVbComboBox,strItemValue,intItemValueLength) Dim i Dim Cnt Cnt = objVbComboBox.GetItemsCount For i = 0 to Cnt -1 If Trim(Left(objVbComboBox原创 2015-12-13 14:22:01 · 527 阅读 · 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 · 3816 阅读 · 0 评论 -
Webdriver UI自动化测试使用mybatis访问数据库
自动化测试 有时需要访问数据库进行数据对比,这里我简单介绍一下Mybatis的应用:1.1MyBatis简介 MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hi原创 2015-12-25 16:24:19 · 1626 阅读 · 0 评论 -
JAVA-迭代子模式简单实现
迭代子(Iterator)模式的结构迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。迭代子可分为外禀迭代子和内禀迭代子。外禀迭代子适合于白箱聚集(白箱聚集就是向外界提供访问自己内部元素接口的聚集),由于迭代的逻辑是由聚集对象本身提供的,所以这样的外禀迭代子角色往往仅仅保持迭代的游标位置。所以具体迭代子角色是一个外部类,它的构造函数接受一个具体聚集对象,从原创 2015-12-15 22:16:37 · 535 阅读 · 0 评论 -
使用Selenium或appium做 Android自动化测试
Android WebDriverhttp://code.google.com/p/selenium/wiki/AndroidDriverSelenium官方支持的Android Driver支持模拟器和真机支持的平台:The current apk will only work with Gingerbread (2.3.x), Honeycomb (3.x), Ice Cr原创 2015-12-16 16:53:44 · 4190 阅读 · 0 评论 -
Webdriver UI自动化测试自动装配测试用例所需的数据对象
自动化测试中,维护测试数据 是一项很重要的工作,为了达到用例和测试数据的分离,我们一般会把数据存储在外部文件 或 数据库,为了简化测试,测试用例编写人员想只需要维护测试数据文件,在用例里通过简单声明,即可随意读取本次测试用例所需要的测试数据,我的思路还是为测试用例自动注入测试数据对象。代码如下:定义测试对象标签,只要在用例里的类域加了此标签 测试框架便认为此域变量是个测试数据对象:pa原创 2015-12-15 19:04:22 · 2121 阅读 · 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 · 2926 阅读 · 0 评论 -
Webdriver UI自动化测试 实现自动登录
自动化测试实施过程中,有测试需求:第一个用例时登录用例,只要登录成功,后面的用例就不需要重复登录。随机想到了每次请求目标网站,携带上次登录成功后服务端返回的cookie,来实现绕过登录:保持cookie的工具类:package ec.qa.autotest.ui.utility;import org.openqa.selenium.Cookie;/** * @author原创 2015-12-17 15:26:38 · 4296 阅读 · 0 评论 -
做好软件测试需要具备的思维方式
最近部门来了好几位应届毕业生加入团队,我们也大张旗鼓的组织了集中式的培训,其中我需要对关于测试工作进行简介,在培训内容中,我特地整理和回顾了做好软件测试需要具备的思维方式,当时也就4张PPT。在此,我再详细整理出文字内容也分享出来给广大的同行。首先,从需求,用户及研发角度考虑,要想为产品贡献最大的力量,就不能只专注于做好测试保证质量这一个方面,而应该是从多个角度全面衡量。 从图转载 2015-12-30 19:43:10 · 768 阅读 · 0 评论 -
JAVA-状态设计模式
状态模式(State Pattern)是设计模式的一种,属于行为模式。 定义(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 意图:允许一个对象在其内部状态改变转载 2015-12-23 09:34:18 · 387 阅读 · 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 · 745 阅读 · 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 · 1710 阅读 · 3 评论 -
互联网产品快速迭代下是否需要写详细测试用例
由于自己在互联网电商公司工作,产品需求很多,平台功能迭代很快,有时一个功能需求评审+开发+测试 +上线总共只有1天时间的计划,而且有些紧急需求不允许delay,这时我们如何分配实际执行测试时间和测试用例编写时间? 我认为我们不能一味的 墨守以前的测试流程,测试用例固然重要,但是如果写测试用例消耗了绝大部分测试时间,那将是得不偿失的,写过用例的都是知道,用例在实际...原创 2016-01-06 18:21:37 · 4591 阅读 · 3 评论