- 博客(43)
- 资源 (10)
- 收藏
- 关注
原创 HttpClient +Testng(3)对返回结果进行处理:json格式化,方便验证结果
上次的运行结果可看出,http返回结果是个字符串类型,没有规律性。而正常情况下,我们是需要提取返回直接中的值和预期值进行比较,看返回结果是否正确。所以我们对返回结果进行json格式化,这样就方便验证结果。首先,还是修改FirstTest.java,如下所示:import net.sf.json.JSONObject;import org.apache.http.HttpEntit
2017-03-16 17:20:38 3271 1
原创 HttpClient +Testng(2)使用testng的DataProvicer来进行数据驱动
在FirstTest.java 文件中,我们可看到请求URL、请求参数,这些都是属于测试数据。这里我们使用testng中自带的@DataProvider注解来做数据驱动,数据源文件可以是EXCEL,XML,甚至可以是TXT文本。这里我们使用EXCEL数据源。1、大概流程每个测试运行前,会先通过@DataProvider的方法来读取EXCEL中数据,该注解的方法会返回一个Object
2017-03-14 10:45:28 2698
原创 Appium(7)appium server日志分析
每次运行测试,可以从Appium Server控制台看到有特别多的日志输出,这些日志其实很清楚的显示一个test从启动到case完成的活动过程所以如果能够更好的理解这些日志的内容,会帮助我们更好的理解整个测试流程。下面是一个例子,主要功能是在安卓模拟器上安装dobby,并进行登录。日志的具体内容如下所示:> Launching Appium server with
2017-03-07 15:17:52 3221
原创 Appium(5)所需环境的安装 – ubuntu版
最近要把appium换到linux环境,所以重新折腾一下这个appium的安装1、JDK的安装和JAVA_HOME的配置1.1 JDK安装由于系统是ubuntu的,是桌面版的。所以JDK的下载可以直接通过浏览器来下载,选择对应的版本链接:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd
2017-03-07 15:15:24 936
原创 Cucumber java + Webdriver (8) 使用命令行风格来编写测试场景(Scenario)
团队最近采用了一种与之前的PageFactory思路完全不一样的模式来完成我们的自动化测试编码 在编写step过程中,有很多非常通用的步骤定义,这些步骤定义可编写大量与之类似的场景,而无需创建太多的步骤定义。即采用一种命令式风格来编写场景步骤,使用fill,press这样的词语,对于这样一种风格有很多争议,但是不管好坏,尝试下总归是有好处的。 这种命令式的风格,是属于用户界面控
2016-09-14 16:21:13 3139 2
原创 Cucumber java + Webdriver (7) 结合Page Object,使用LoadableComponent
进行页面自动化过程中,页面间的跳转经常是比较痛苦的。1、未使用LoadableComponent前的做法比如我们经常需要写一些js的代码来判断页面是否加载完整如:JavascriptExecutor je=(JavascriptExecutor) driver; final String docstate=(String) je.exec
2016-09-12 16:16:00 1875
原创 jira中issue状态的改变触发Jenkins构建
JIRA Trigger Plugin:Triggers a build when a certain condition is matched in JIRA.
2016-08-05 17:54:09 13429 8
原创 Cucumber java + Webdriver (6) Cucumber的数据驱动
在我们测试过程中,经常需要对一个测试场景设计不同的测试数据,比如在设计测试用例时根据等价类划分有效数据和无效数据等。那这些测试用例的自动化过程中,就可以使用数据驱动方式来区分开测试行为和测试数据。 这里我们通过比较常见的“登录CSDN网站”行为来进行我们的练习1、创建一个登录feature在resources下,新建feature目录,新建文件login.feature
2015-11-03 19:21:02 4234
原创 Cucumber java + Webdriver (5) Tags的使用
在实际项目中,随着项目的进行,一个测试工程可能由多个feature文件组成,并且每个feature文件中可能也是由多个scenario组成。默认情况下,每次运行是运行所有feature中的所有scenario。这样可能导致正常情况下运行一次测试脚本,需要非常长的时间来等待测试结果。但是实际过程中,测试用例是有优先级等区分的。比如smokeTest、regressionTest等。或者有时候
2015-10-21 15:30:31 2346
原创 Cucumber java + Webdriver (4) 使用自动化测试的Page对象模式
在BaiduSearchStepfs.java 文件中,我们可看到都是直接用driver对页面进行操作。对于我们刚开始学习来说,这样没问题。但是随着项目的运行,页面多了以后。我们写的用例也多了以后,当开发改变某个页面元素后,那我们需要修改代码的工作量将是非常多。所以如果我们能够用Page模式来管理各个页面,那后面页面元素有改变的话,我们只需要改下具体某个页面的Eelement就可以了1、创建一
2015-10-21 11:16:49 5734 7
原创 Cucumber java + Webdriver (3) 关于RunCukesTest.java 和 BaiduSearchStepfs.java
1、RunCukesTest1.1 用于启动测试上面运行测试的方式,这里也可以用其他启动方式来运行。如在类RunCukesTest.java中,右键点击Run RunCukesTest1.2 RunCukesTest.java内容@RunWith(Cucumber.class)@CucumberOptions( features = {"src
2015-10-21 11:00:07 2371 1
原创 Cucumber java + Webdriver (2) 开始编写第一个Test
第一个Test,我们写个百度搜索的功能,下面是具体的实现过程1、在intellij idea创建一个Maven项目Cucumber_FirstTest,在pom.xml添加如下依赖具体内容是:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/
2015-10-21 10:46:30 5713 2
原创 Cucumber java + Webdriver (1) 所需环境的安装
这里可以参考以前文档中的安装步骤http://blog.csdn.net/yan1234abcd/article/details/49155959我们主要是安装下面两个工具就可以1、JDK的安装和JAVA_HOME的配置2、Maven安装及配置后面开始,我们就直接开始练习
2015-10-21 10:26:48 2440
原创 Appium(4) Android SDK 辅助工具的使用
在上面的练习中科看到,我们必须获取appPackage和appActivity,并且要定位到app的元素,才可以进行相应的测试那么这里使用了Android SDK本身自带的两个工具本文参考了该文档:http://www.tuicool.com/articles/NRveem21、aapt该工具工具在 SDK 的 build-tools目录下面(如果没有,则是因为没有下载),
2015-10-15 19:36:47 1483
原创 Appium(3) 开始编写第一个app Test
参考网上其他大神文档,写一个简单的计算器的test1.1、在intellij idea中创建一个Maven项目,之后在pom.xml添加如下依赖: org.seleniumhq.selenium selenium-java 2.42.1 org.ap
2015-10-15 19:14:55 2131
原创 Appium(2) 创建AVD虚拟机
1、启动一个Android模拟器由于是笔者自己练习用的,机器是用虚拟机,所以需要创建一个AVD虚拟机(1)在开始菜单中,打开Android SDK Tools中的AVD Manager,点击右侧的create,新建一个新的AVD(Android Virtual Device),如下图所示,设置AVD的各个属性,之后点击OK注:这里Skin选择,可以让模拟器有键盘可以操作比较方便
2015-10-15 19:01:58 3091
原创 Appium(1) 所需环境的安装 – windows版
1、JDK的安装和JAVA_HOME的配置1.1 JDK安装下载相应的JDK,目前安装jkd7就可以http://www.oracle.com/technetwork/java/javase/downloads/index.html本文安装的目录和JDK版本为 C:\Program Files\Java\jdk1.7.0_791.2 JDK配置A) 编辑用户变量JAV
2015-10-15 18:41:37 3016
原创 如何利用 Ant 构建 Selenium 测试
<br />如何利用 Ant 构建 Selenium 测试<br />诸如 Ant 这样的集成工具可以方便地构建 Selenium 测试和顺畅地运行测试用例,无需单独启动 Selenium 服务器。如果 Selenium 测试由 TestNG 驱动,那么定义清单 1所示 TestNG Ant 任务。清单 1中假设 classpath 是 TestNG.jar 文件的文件路径。<br /><br />清单 1. TestNG Ant 任务<br /> <taskdef resource="testn
2011-06-02 10:26:00 715
原创 利用 Selenium 测试 Ajax 应用程序
Asynchronous JavaScript and XML (Ajax) 是一种用于创建交互式 web 应用程序的 web 开发技术。Ajax 应用程序的一个特征是,不会导致一次重新加载整个页面。相反,浏览器将具有一个对服务器的异步调用以获得数据,并且只刷新当前页面的特定部分。要提高 web 页面的交互性、响应速度和可用性,测试 Ajax 应用程序的过程需要一些改变。我们首先刷新 web 页面,然后就是等待,直到异步调用完成。完成之后,可以继续进行验证。此时,出现适当等待时间的问题。一种
2011-06-02 10:24:00 798
原创 如何支持测试 HTTPS 网站
<br />随着互联网日益强调信息安全,越来越多的 web 应用程序在使用 SSL 身份认证。Selenium IDE 默认支持 HTTPS,但是 Selenium RC 不是这样的。Internet Explorer 和 Firefox 中的解决方案各不相同。 对于 IE,在 setup 目录下的 SSL 支持文件夹中在安装一个证书。如果使用的版本早于 Selenium-RC 1.0 beta 2,请使用 *iehta 运行模式,对于 Selenium-RC 1.0 beta 2 或更晚的版本,使用 *i
2011-06-02 10:23:00 1517
原创 如何高效地认识不带 ID 属性的 web 元素
<br />使用一个有含义的 ID 或名称是一种高效且方便的定位元素的方式。它也可以改善测试用例的可读性。但是为了每个元素具有一个有含义的、惟一的 ID(尤其是动态元素),Selenium 提供多种策略来认识元素,比如说 Xpath、DOM 和 CSS。<br />下面是一个样例,使用三种策略来定位动态表格中的一个元素。HTML 代码在清单 1 中。<br />清单 1. 第一个表格列的 HTML 代码<br /> <table id="test_table" border="1"> <t
2011-06-02 10:21:00 701
原创 如何处理弹出窗口
<br />一般来说,操作都是在由 Selenium 启动的主窗口中执行。如果您想在一个由 window.open 函数生成的新窗口中执行操作,那么将焦点更换到新窗口。在弹出窗口中执行操作之后,焦点返回到主窗口。处理弹出窗口的过程定义在清单 1中。<br /><br />清单 1. 处理弹出窗口的样例代码<br /> //wait for the popup window with timeout;selenium.waitForPopUp(windowname, timeout); //
2011-06-02 10:18:00 638
原创 如何验证警告/确认/提示信息
如何验证警告/确认/提示信息对于由 window.alert() 生成的警告对话框,使用 selenium.getAlert() 来检索前一操作期间生成的 JavaScript 警告的消息。如果没有警告,该函数将会失败。得到一个警告与手动单击 OK 的结果相同。对于由 window.confirmation() 生成的确认对话框,使用 selenium.getConfirmation() 来检索前一操作期间生成的 JavaScript 确认对话框的消息。默认情况下,该函数会返回 true,与
2011-06-02 10:15:00 822
原创 如何处理上载/下载文件窗口
<br />如何处理上载/下载文件窗口<br />Selenium 使用 JavaScript 来模拟操作。因此,它不支持诸如上载窗口、下载窗口或身份认证窗口之类的浏览器元素。对于非主要窗口,配置浏览器跳过弹出窗口。<br /><br />图 1. 安全信息窗口<br /><br /><br />跳过图1 中安全信息窗口的解决方案是打开 Tools > Internet Options > Custom Level。然后启用 Display mixed content。<br />配置 Internet E
2011-06-02 10:14:00 809
原创 white学习16(官方网站的内容)
该部分学习了功能测试的具体使用,由于内容和代码较多,所以就没有整理,学习网址是http://white.codeplex.com/wikipage?title=Functional%20Testing
2011-04-26 15:03:00 475
原创 white学习15(官方网站的内容)
Working with sourceCheckout Source Code<br />The source code of white is not hosted on Codeplex since 0.18 onwards. Its available on Google Code http://code.google.com/p/white-project/source/checkout<br /><br />What all is in source code?Entire source code
2011-04-26 14:29:00 505
原创 white学习14(官方网站的内容)
HomeThird Party ControlsWhite provides support for all the controls which comes with standard .NET libraries. This support is partially just abstraction over UIAutomation and window messages. So, in case of third party controls like DevExpress, PureCompone
2011-04-26 14:28:00 493
原创 white学习13(官方网站的内容),介绍White.NUnit
White.NUnit<br /><br />This dll can be used for doing verification in automated tests.<br /><br />Verify/Assert<br />Both of these perform assertions of some kind. Verify doesn’t cause the test to immediately fail while assert does that. There are reasons
2011-04-26 14:26:00 379
原创 white学习12(官方网站的内容),介绍一个捕获元素工具UISpy
UISpy<br /><br />This is a good tool which you would find useful in order to identify UIItems on a window. This comes along with the .NET 3 SDK. UISpy is standalone executable and needs only .NET 3 framework. Hence if you do not want to download/install SD
2011-04-26 14:26:00 1174
原创 white学习11(官方网站的内容)
IntroductionUIAutomation and White Core provides automation support for most of the actions and properties. There are a lot of situations (check the forums) when this is not sufficient or the implementation is buggy. In some situations one can use mouse
2011-04-26 14:24:00 521
原创 white学习10(官方网站的内容)
<br />Speed up performance by Position based search<br />Performance of finding UIItems (based on search criteria) is proportional to the number of items on a window. A UIItem is found by enumerating over all the controls in a window (at windows messages l
2011-04-26 14:23:00 656
原创 white学习10(官方网站的内容)
<br />Simple way for automate silverlight applications.<br />You would need to add reference to white.webbrowser.dll along with white.core.dll.InternetExplorerWindow browserWindow = InternetExplorer.Launch("http://localhost/white.testsilverlight/TestSilve
2011-04-26 14:22:00 417
原创 white学习9(官方网站的内容)
Custom UI Item<br />Fundamentally all UIItems are either elementary (Label, e.g. having no other item in it) or composed of other UI Items. In white there is in-built support for standard UIItems. These are called standard mainly because of their prevalent
2011-04-26 14:21:00 507
原创 white学习8(官方网站的内容)
Wait handlingWhite strives to eliminate any need whatsoever for doing Thread.Sleep and retry in your test programs. So if you find yourself doing these things in your program, please use any one applicable options below. If you don't find it, please rais
2011-04-26 14:20:00 583
原创 white学习7(官方网站的内容)
UI ItemsControlTypeToUIItemMappingControlType to UIItem Mapping for Primary UIItemsUIA ControlTypeWhite's UIItemAdditional InfoListListBoxThe classname of ListView is misleadingDataGridListViewListView in WinFormEditTextBoxTextLabelComboBoxComboBoxWPFCombo
2011-04-26 14:03:00 515
原创 white学习6(官方网站的内容)
MenuBar, Menu and PopupMenuA menu bar is part of a window, while a pop-up menu can be shown on a window. Other than this difference, the two types of menus behave in a consistent way, as far as a user is concerned. Both of them are composed of click-able m
2011-04-26 14:02:00 531
原创 white学习4(官方网站的内容)
<br />UIItem Identification<br />Managed UI applications have a mechanism for identifying controls by specifying them names. These names are available for finding controls on using UIAutomation API. Name property used while developing application show up a
2011-04-26 14:01:00 675
原创 white学习5(官方网站的内容)
Checkout ControlTypeToUIItemMapping in order to find the mapping between white types and UI Automation types.List ViewIn order to select multiple rows in ListView use MultiSelect method.listView.Rows[0].Select();listView.Rows[1].MultiSelect(); //This would
2011-04-26 14:01:00 839
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人