自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xin.wang的博客

努力奋斗,创造美好明天!

  • 博客(65)
  • 收藏
  • 关注

原创 利用反射简单模拟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 2335 1

原创 基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)

基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)自动化测试系统及应用架构

2015-12-08 16:32:10 13659 28

转载 做好软件测试需要具备的思维方式

最近部门来了好几位应届毕业生加入团队,我们也大张旗鼓的组织了集中式的培训,其中我需要对关于测试工作进行简介,在培训内容中,我特地整理和回顾了做好软件测试需要具备的思维方式,当时也就4张PPT。在此,我再详细整理出文字内容也分享出来给广大的同行。首先,从需求,用户及研发角度考虑,要想为产品贡献最大的力量,就不能只专注于做好测试保证质量这一个方面,而应该是从多个角度全面衡量。 从图

2015-12-30 19:43:10 768

转载 RabbitMQ基础概念详细介绍及示例

转至:http://www.ostest.cn/archives/497引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本

2015-12-30 19:38:02 596

原创 自动化测试使用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

原创 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

原创 Webdriver UI自动化测试使用mybatis访问数据库

自动化测试 有时需要访问数据库进行数据对比,这里我简单介绍一下Mybatis的应用:1.1MyBatis简介      MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hi

2015-12-25 16:24:19 1626

转载 JAVA-中介者设计模式

Mediator中介者模式定义     Mediator 中介者,或者叫仲裁者,类似房屋的中介,比如演播室的主播和嘉宾,主播在说话的时候,嘉宾不能打断他,主播停止说话的时候嘉宾才能说话,主播则可以随时说话,这里还有一个中间人:      1.主播对中介者说,节目开始了,我要说话了      2.中介者看看嘉宾是不是在说话,如果是在说话,让他停止,让主播说,如果嘉宾没在说话,让主播说 

2015-12-25 13:16:44 468

转载 JAVA-状态设计模式

状态模式(State Pattern)是设计模式的一种,属于行为模式。  定义(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。   状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。   意图:允许一个对象在其内部状态改变

2015-12-23 09:34:18 387

原创 JAVA -备忘录设计模式

备忘录模式是一种软件设计模式:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态

2015-12-21 20:22:41 866

原创 使用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

原创 Webdriver UI自动化测试 实现自动登录

自动化测试实施过程中,有测试需求:第一个用例时登录用例,只要登录成功,后面的用例就不需要重复登录。随机想到了每次请求目标网站,携带上次登录成功后服务端返回的cookie,来实现绕过登录:保持cookie的工具类:package ec.qa.autotest.ui.utility;import org.openqa.selenium.Cookie;/** * @author

2015-12-17 15:26:38 4296

原创 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

转载 JAVA-命令设计模式

定义将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。角色Command定义命令的接口,声明执行的方法。ConcreteCommand命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执

2015-12-16 21:40:28 417

原创 JAVA-观察者设计模式

观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。观察者模式(Observer)完美的

2015-12-16 21:01:12 494

原创 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

原创 使用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

原创 JAVA-迭代子模式简单实现

迭代子(Iterator)模式的结构迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。迭代子可分为外禀迭代子和内禀迭代子。外禀迭代子适合于白箱聚集(白箱聚集就是向外界提供访问自己内部元素接口的聚集),由于迭代的逻辑是由聚集对象本身提供的,所以这样的外禀迭代子角色往往仅仅保持迭代的游标位置。所以具体迭代子角色是一个外部类,它的构造函数接受一个具体聚集对象,从

2015-12-15 22:16:37 535

原创 Webdriver UI自动化测试自动装配测试用例所需的数据对象

自动化测试中,维护测试数据 是一项很重要的工作,为了达到用例和测试数据的分离,我们一般会把数据存储在外部文件 或 数据库,为了简化测试,测试用例编写人员想只需要维护测试数据文件,在用例里通过简单声明,即可随意读取本次测试用例所需要的测试数据,我的思路还是为测试用例自动注入测试数据对象。代码如下:定义测试对象标签,只要在用例里的类域加了此标签 测试框架便认为此域变量是个测试数据对象:pa

2015-12-15 19:04:22 2121

转载 Linux VI常用命令

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复f

2015-12-14 21:41:48 329

原创 JAVA-桥接设计模式

桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿。      桥接模式的做法是把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。 桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,

2015-12-14 20:40:23 537

原创 JAVA-外观模式

外观模式        外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。   结构:Facade这个外观类为子系统提供一个共同的对外接口Clients客户对象通过一个外观接口读写子系统中各接口的数据资源。适用场景:在以下情况下可以考虑使用外观模式:

2015-12-14 18:59:40 428

原创 软件测试-边界值和等价类

边界值测试      所谓边界值,关注的是变量取值空间的边界。之所以采用值域的边界进行测试,是因为通常的错误更可能出现在输入变量的极值附近。在这里还有另外一种假设,我们认为,软件失效极少由两个(或者多个)缺陷问题引起的。边界值分析的基本思想是使用在最小值、略高于虽小值、正常值、略低于最大值和最大值出取输入变量值(min、min+、nom、max-和max)。健壮性测试是在边界值测试

2015-12-14 15:29:20 8655

转载 JAVA-装饰器模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的:  装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构  装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情

2015-12-14 15:19:00 387

原创 JAVA-适配器模式

在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。基本概念客户:需要调用我们的代码的对象。Adapter模式的宗旨:保留现有类所提供的服务,向客户提供接口,以满足客户的期望。主要内容(1)类适配器:

2015-12-14 14:53:27 449

原创 JAVA-原型模式

原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.原型模式中的拷贝分为"浅拷贝"和"深拷贝":浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员

2015-12-14 13:43:54 635

转载 JAVA-堆区,栈区,方法区。

堆区:村线程操纵的数据(对象形式存放)1 存储的全部是对象,每个对象包含一个与之对应的class信息--class的目的是得到操作指令2 jvm只有一个堆区(heap)被所有线程共享,堆区中不存放基本类型和对象引用,只存放对象本身。栈区:1 每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象)。对象都存放在堆区中。2 每个

2015-12-14 12:35:49 7465 3

转载 设计模式的分类及原则

设计模式(Design Patterns)                                  ——可复用面向对象软件的基础设 计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计

2015-12-14 12:07:41 640

转载 Spring AOP 详解

文章出处:http://pandonix.iteye.com/blog/336873/   此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用

2015-12-13 17:02:23 369

原创 JAVA-责任链模式

JAVA-责任链模式责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。==引用自在阎宏博士的《JAVA与模式》责任链:责任链模式涉及到的角色如下所示:  ●  抽象处理者(H

2015-12-13 16:46:21 389

原创 自己重新实现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

原创 白盒测试技术含量不一定比黑盒测试高

白盒测试技术含量就比黑盒测试高?最近在群里发现这个比较有意思,某人一说自己在做白盒测试,其余的人顿生景仰之情,急急称牛人乎,米多乎!首先我们看看定义:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内

2015-12-13 14:14:45 2975

转载 JAVA-建造者设计模式

文章转自:http://haolloyin.blog.51cto.com/1177454/333155/建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景:1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2、当构造过程必须允许被构造的对象有不同的表示时。通用类图

2015-12-13 13:48:49 500

转载 JAVA-单例模式的七种写法

转载出处:http://cantellow.javaeye.com/blog/838473第一种(懒汉,线程不安全): 1 public class Singleton {   2     private static Singleton instance;   3     private Singleton (){}    4     public sta

2015-12-13 13:22:53 421

原创 JAVA-模板设计模式

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。(引用自阎宏博士的《JAVA与模式-模板方法》。模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。

2015-12-13 13:03:48 1419 2

转载 泛型的内部原理:类型擦除以及类型擦除带来的问题

一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉

2015-12-13 07:16:06 2102

原创 JAVA-策略设计模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。引用其他人的解释:策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。示范代码工程:示范工程实现的是 对不同的动物根据动物的属性

2015-12-12 14:54:34 473

原创 JAVA-工厂方法设计模式

工厂方法模式(Factory Method):定义一个用于创建对象的接口IProductFactory,在具体的CreateProdcutFactory子类的CreateProduct方法中根据传进的参数即具体产品类的类型决定实例化哪一个IProduct产品,如果有新添加的产品,只要在客户端修改传给CreateProduct方法的参数即可,符合面相对象的“开闭原则”,适用性:1.当一个类不

2015-12-12 14:24:15 451

原创 Webdriver自动化测试使用Xpath-Helper调试页面元素的xpath

在做自动化测试过程中如果有的元素必须用XPATH去定位,这里给大家提供一个非常方便的调试XPATH的工具,可以在定位元素的同时在被测页面直接调试XPATH:1.首先在google网上应用商店的搜索栏输入 :"xpath-helper": 回车搜索。2.在搜索结果列表中选择 xpath-helper:3点击“添加至chrome”4.在googl

2015-12-11 15:47:34 5681

原创 Webdriver+Testng自定义html测试报告

testng自带的html测试报告不是很好用,打开慢,内容简单,基本不具备什么参考价值,所有想到自己重新定义一份html格式的报告,可以参考jsp转换成html页面的原理+testng监听器实现。代码如下:1.实现testng listener接口:public class testReport implements ITestListener2.实现ItestListen

2015-12-11 10:24:14 3979

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除