游西安
上周周末,请假去西安玩了五天。 早就听闻西安旅游,遇坑无数,所以出行前,老婆做了大量的功课。
上周周末,请假去西安玩了五天。 早就听闻西安旅游,遇坑无数,所以出行前,老婆做了大量的功课。
看来这是delay最长的一次年度总结了,硬生生地拖到了第二年的四月。 期间强迫症又犯了,一直想等着自己的网站重新规划和设计好后再开始写文,但是网站一拖再拖,最后还是到了3月,才算重新弄好。 惯例还是先记录一下2016年大事件: 2015.12,负责双旦大促活动用户线与交易线压测与容量评估。 2016.01,GA打点自动化项目。 感觉像是做失败了的项目,虽然设计的很好,但是公司对打点的方案变化太快,最后虽然工具设计的很好,但是感觉并没有发挥想要的作用。姑且自认为是个失败的项目。 2016.02,Appium自动化项目。 啥也不多说了,UI果然还是有很多坑,APP UI更是深坑。 2016.03, […]
本人名字中有个“达”字,所以就姑且起名为“逹先生说”。 好久没一本正经的写文章了,但是总觉得需要经常写一些什么,让自己的写文水平不至于倒退太多,所以开了公众号。 本人在一家互联网公司做测试一职位,后续会写一些生活和工作上的一些感悟与总结,欢迎各位感兴趣的朋友关注。
还没用习惯2015这个年份的数字,一年又将过去。 原本应该在12月初就写完的2015年度总结却也一直写到了今天才写完。又是超级忙碌的一年,这两天回看了一下我去年和前年的年度总结,越来越感概一年一年过的真快。按照惯例,先记录一下2015年一年的流水:
前段时间去Ebay参加了“我们都是测试人”的活动,这里分享一下会议的PPT和录像。 PPT下载地址:
在张涛宣布退出联席CEO的邮件里,他将抄送列表里的王兴的邮箱写错了。 这个笔误,或许撬动了繁花似锦的草皮,露出泥土里的湿冷与严酷:自始至终,张涛都未曾与王兴成为真正熟悉的商业伙伴。
2015 / 10 / 25 星期日 晴 不知不觉,又很久没有更新网站了。 很多人应该知道了,今年6月我又跳槽了,目前就职于大众点评,算是全新的开始。 这段时间来,对测试算是又有了不同的认识,很多工具已经不再使用了,比如以前写过很多文章的QTP,已经两年没有碰了,基本已经不怎么记得了,现在更多使用的是一些开源的工具。Selenium也是去年玩的东西了,基本毕业。现在会开始慢慢偏向移动端方面的一些测试,又有了更多新的目标。
针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。 Android Debug Bridge adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成: 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试 Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样地用到了 […]
上一节乙醇带大家了解了appium的定位策略。实际上appium的控件定位方式是完全遵守webdriver的mobile扩展协议的。 这一节将分享一下如何使用resource id来定位android策略。 什么是resource id,这个不属于本文的范畴,大家可以点这里了解。 我们可以有两种方式来使用resource id进行定位: 使用findElement(By.id(“resourceId”))的方式。这也是原生的webdriver定义的方法,不过竟然在appium的官方文档里没有提及,属于隐藏技; 使用find_elements_by_android_uiautomator(‘ne […]
狭义上讲,UI级的自动化测试就是让机器代替人去点来点去的过程。 但机器去点什么(点上面还是点左边),怎么点(是长按还是轻触),这些东西是必须由代码的编写者所指示清楚的。 控件定位就是解决机器点什么的问题的。 一般说来,我们可以这样告诉机器:去点登陆按钮。 机器很笨,它并不知道什么是登陆按钮。因为登陆按钮是自然语言的描述。 如果你让一个人去点登陆按钮,那么他其实也是要经过一系列的脑补以后才可以做这件事的。
有时候在appium的Desired Capabilities中需要指定被测app的appActivity,下面的方法可能会对你有所帮助。 方法一 如有你有待测项目的源码,那么直接查看源码就好。如果没有,那么请联系有源码的同学,这是推荐方法。 方法二 如果你没有代码,那么可以反编译该app。
那片笑声让我想起我的那些tool 在我生命每个角落静静为我开着 我曾以为我会永远守在她身旁 今天我们已经离去在人海茫茫 她们都老了吧 都更新换代了吧 幸运的是我曾陪她们开发 啦…… 想她 啦…… 她还更新吗 啦…… 去呀 她们已经被风吹走散落在天涯 正所谓工欲善其事必先利其器,对于appium实战android来说,下面的这些工具(以windows系统为例)是必须熟练使用的。
Desired Capabilities在启动session的时候是必须提供的。 Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情: 本次测试是启动浏览器还是启动移动设备? 是启动andorid还是启动ios? 启动android时,app的package是什么? 启动android时,app的activity是什么?
一般情况下,我们都从命令行启动appium。 windows下,dos命令窗口输入 appium 如果该命令报错,那么请重装appium npm install -g appium 如果安装出错,请自行更换npm源。 npm -g –registry http://registry.cnpmjs.org install appium 然后请打开android的模拟器,如果没有请新建一个虚拟设备。请自行解除设备锁定(手动把屏幕解锁了),以防万一。
appium client扩展了原生的webdriver client方法 下面以java代码为例,简单过一下appium client提供的适合移动端使用的新方法 resetApp() getAppString() sendKeyEvent() currentActivity() pullFile() pushFile() pullFolder() hideKeyboard() runAppInBackground() performTouchAction() performMultiTouchAction() tap() swipe() pinch() zoom() getNamedTex […]
appium client是对webdriver原生api的一些扩展和封装。它可以帮助我们更容易的写出用例,写出更好懂的用例。 appium client是配合原生的webdriver来使用的(特别是用java而不用maven的同学),因此二者必须配合使用缺一不可。 从本节开始,教程的内容将涵盖3个语言,ruby/python/java。 安装appium client
appium的哲学里有一条就是不重新发明轮子。同样,官方已经有明确的安装步骤了,因此在这里纯属搬砖。 原文地址 感谢testerhome的辛勤翻译。 限制 如果你在windows上安装appium,你没法使用预编译专用于OS X的.app文件,你也将不能测试IOS apps,因为appium依赖OS X专用的库来支持IOS测试。这意味着你只能通过在mac上来运行IOS的app测试。这点限制挺大。
Client/Server Architecture appium的核心其实是一个暴露了一系列REST API的server。 这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。 在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解 […]
什么是appium? 下面这段介绍来自于appium的官网。 Appium is an open-source tool you can use to automate mobile native, mobile web, and mobile hybrid applications on iOS and Android platforms. “Mobile native apps” are those written using the iOS or Android SDKs. “Mobile web apps” are web apps accessed using a mobile br […]
2014年的总结已经在电脑里放了一个多月了,一直没放出来,细数下来,从2012年到现在,这是第三次写一年总结。匆匆忙忙的一年,2014年注定着这是一个非常繁忙的一年。首先码一些这一年的流水。 2013年11月,在做了去年的总计《2013》后,去了趟成都,散散心,五天时间匆匆而过,有时间,还是应该导出走走的。
从前,有两家互不知晓的公司,一家叫做“自动会计应用协会”,另外一家叫做“统一计算资本公司”。他们同时决定开发一种提供相同功能的程序。 “自动”雇佣了一位分析程序员,艾伦,来解决这个问题。 而“统一”决定试一下新来的初级程序员查尔斯,看看他是否有真本事。
今天在做雅虎的时候,发现用第三方工具截取不到客户端与服务端的通讯,以前重来没碰到过这种情况,仔细看了看,它的url请求时基于https的,gg了下发现原来https协议和http有着很大的区别。总的来说,http效率更高,https安全性更高。
创造你的生活应该是你能做的一件最有影响力的事情。你可以身处在某个情况下看到积极的一面,在同样情况下,你也可以选择去看消极的一面。通常情况下,你所意识到的正在发生的事情是透过你脑子中的想法体现出来的。 积极的想法能够创造出更多的可能。如果你想把关系搞得更好,在你的职业生涯中更加成功或者找到能带给你宁静和安逸的幸福,那么试着去注意你生活中的积极,正确的一面是一个不错的开始。 而另一方面,消极的想法只会让你觉得不满,沮丧和挫败感。你把它想的太糟糕,他就会变得太糟糕。学着去改变你消极的想法会让你沮丧的生活变得充满自信。
unirest 全新的轻量级HTTP请求库,熟悉httprequest的同学不会对此陌生,支持各大主流语言。
应网友要求写一个用Selenium Grid控制多系统多浏览器并行执行test case的例子。 因为我这里有两台机子,我打算这样演示: 一台机子启动一个作为主点节的hub 和 一个作为次节点的hub(系统windows 浏览器为ie) ip为:192.168.40.24 另一台机子启动两个次节点hub,一个次节点浏览器为firefox,另一个浏览器为chrome (系统为windows),ip为:192.168.40.67
Selenium Grid允许同时并行地、在不同的环境上运行多个测试任务。这里主要演示一下怎么使用Selenium Grid。 准备: 需要两台机子 两台机子分别安装好JDK环境 两台机子需要从 http://code.google.com/p/selenium/downloads/list下载selenium-server-standalone-*.jar包
WebDriver 是一个庞大的工程。如果我们试着把所有的东西都放在一个单独的构建文件里,它最终会变得难于管理。我们知道会这样。因为我们已经尝试过了。所以我们把单独的 Rakefile 分成一系列 build.desc 文件。它们描述构建的一部分。 让我们看一个 build.desc 文件。这是测试主要的 build.desc 部分:
准备环境 对所有版本的webdriver: Java JDK 5或以上(如果没有安装从oracle的网站上下载) 源代码(如果没有,导出源代码,可参考:selenium webdriver学习(十七)) 另外,interntetExplorerDriver需要一些额外的组件并且只能构建在windows系统上。 Visual Studio 2010 Professional及以上 “msbuild”需要加入到PATH路径 构建基于Rake,一个著名的Ruby构建工具。我们提供你在构建此项目的所有gems,虽然这并不是推荐以这种方式来构建。绑定JRuby jar,通过“go […]
这里主要是想把selenium的整个项目同步到eclipse的经历分享一下。虽然有时候想想没有必要,因为你下载的包里本身就包含了源代码,但是我就是这样做了。 selenium项目地址: (只读)
最近想总结一下学习selenium webdriver的情况,于是就想用selenium webdriver里面的方法来实现selenium RC中操作的一些方法。目前封装了一个ActionDriverHelper类,来实现RC中Selenium.java和 DefaultSelenium.java中的方法。有一些方法还没有实现,写的方法大多没有经过测试,仅供参考。代码如下: