2012年12月14日
摘要: 最近组里两个同事想学习selenium相关的东西,于是找了几个之前写好的例子传过去,结果用new HtmlUnitDriver(true)做driver跑的好好的,用new FirefoxDriver()之类的真实播放器driver作为driver就跑不起来,抛出Cannot find firefoxbinary in PATH之类的异常;经排查发现,他们的firefox、chrome安装路径都不是默认路径,猜想可能就是这个原因。假如是这个原因,ie肯定是默认路径下,于是把driver换成new InternetExplorerDriver(),结果一切正常。结论:当使用真实浏览器作为web 阅读全文
posted @ 2012-12-14 14:53 redspark 阅读(1801) 评论(0) 推荐(0) 编辑
  2012年12月5日
摘要: 最近在对一个thrift的service端进行自动化测试,做了一个thrift的client端,client端需要传一个装有由protobuf实例序列化byte数组的ByteBuffer,实现方法为:ByteBuffer key=ByteBuffer.allocate(p2q.toByteArray().length);key.put(p2q.toByteArray());但是client收到的service端的返回始终不正确。由于protobuf之前没有用过,是个新鲜的玩意,所以始终怀疑问题出在这块儿了;反复查找,并对该protobuf实例在本地进行了反序列化,结果发现一切OK……。经过无数 阅读全文
posted @ 2012-12-05 21:55 redspark 阅读(3742) 评论(0) 推荐(0) 编辑
  2012年11月29日
摘要: 1.htmlunitdriver比浏览器driver性能上出色很多,能不用浏览器driver尽量不用;2.htmlunitdriver各种bug比较多,能找到具体问题解决掉更好,能通过变通的方式解决也不失为好办法;3.有时候改变一下业务实现方式,如之前文章里提到的抓第三方登录的认证cookie,有登陆框和登录页两种方式去登录,不过用登录页去实现要简洁很多,业务逻辑和技术能力结合有更好的实现效果;4.htmlunitdriver有些bug是由于其底层类中有的地方未对exception作catch处理,遇到异常通不过去时,可以尝试将通不过的代码放到try catch中处理一下 阅读全文
posted @ 2012-11-29 13:01 redspark 阅读(202) 评论(0) 推荐(0) 编辑
  2012年11月28日
摘要: 进行播放记录等后台api的自动化测试时,需要后台鉴权,本站注册用户这块容易解决:通过httpclient向相应的passport接口提交请求,抓取cookie;第三方登录由于涉及到第三方的接口和回调处理,逻辑较为复杂,用之前方法实现比较麻烦。权衡之后决定用selenium实现。 selenium的实现过程比较顺利,不过遇到两个小情况:1.iframe上元素的查找、捕获,实现方式driver.switchTo.frame(iframeId);2.在主页面上click链接打开新页面,新页面与主页面切换后才能对新页面进行操作,实现方式:1 WebDriver popup = null;2 for . 阅读全文
posted @ 2012-11-28 10:47 redspark 阅读(1321) 评论(0) 推荐(0) 编辑
  2012年11月26日
摘要: fedora16及以上不再使用配置inittab方式来设置runlevel,使用systemd的方式来配置。比如设置开机启动字符界面:ln -si /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target或者:ln -si /lib/systemd/system/multi-user.target /etc/systemd/system/default.target。二者是本质是一样的:lrwxrwxrwx. 1 root root 17 11月 23 20:02 runlevel3.target -... 阅读全文
posted @ 2012-11-26 15:10 redspark 阅读(265) 评论(0) 推荐(0) 编辑