zoukankan      html  css  js  c++  java
  • selendroid项目实战教程1

    selendroid是国内使用非常少的框架、资料也少。刚好公司项目用到,给大家分享下,技术不太行,有错误还望指正。

    使用selendroid契机,是公司开发的APP,需要大量捕捉Toast信息。公司的自动化平台已经很成熟,并且WEB自动化已经使用ruby watir-Webdriver。

    因此为了加入公司自动化平台,使用ruby是最快的方式,但是资料少这是很头疼的事情。

    使用APPIUM的时候发现指令在移动端执行的速度很慢,而在使用selendroid之后惊喜的发现配置速度很快,快要赶上webdriver的速度了。

    特别说明:并非高版本(API>16)就不能使用selendroid作为自动化测试框架,实测API 21也是可以使用selendroid

    原始参考资料:http://selendroid.io/

    纯selendroid环境搭建

    具体可参考网站资料,java -jar XXXXXx.jar -app test.apk 即可开启selendroid服务器。

    Appium-selendroid环境:

    但作为项目实施 建议使用appium的selendroid模式。

    好处:

    1、appium已经加入selendroid作为一个启动模式,日志管理、BUG定位环境搭建等都比较成熟。

    2、纯selendroid直接使用selenium库作为驱动,很多辅助动能需要自己去实现,例如中文输入、unicode输入等。这些移动端测试能考虑的事情,appium团队事实上已经帮忙考虑了。

    3、启动appium与默认appium模式并无区别,使用GUI开启或者 node appium.js即可。

    具体的APPIUM环境搭建不在赘述,大家可以参考网上很多的教程应该都不难。

    ruby初始化:

    贴入代码:

    # encoding utf-8
    require 'watir-webdriver'
    require 'appium_lib'
    _caps={caps:{ app:'E:/APP/app-debug_3.1.3.876.apk',unicodeKeyboard:'True',resetKeyboard:'True',platformVersion:'5.0',automationName:'Selendroid',udid:'LGD857cfd6ea69',deviceName:'1', platformName:'Android', appActivity:'.activity.Anew.Splash.SplashActivity', appPackage:'com.tenda.router.app',newCommandTimeout:3600},appium_lib: { sauce_username: nil, sauce_access_key: nil } }
    $b= Appium::Driver.new(_caps).start_driver

    事实上与APPIUM初始化并无太多区别:

    1、APP路径必须有,因为每次初始化都要重新安装APP。(大家不用担心APP安装会很麻烦,命令安装时间很短)

    2、UID必须有 就是appium的devices name参数。

    关于selendroid元素定位:

    可以使用sdk里面的uiautomatorviewer工具进行定位获取ID等信息,其他用不到的可以参考selendroid官方网站的地位方式。

    注意:uiautomatorviewer获取ID时需要去掉前面的Package名称/ 后面的才是selendroid的ID,否则定位不到。

    并且selendroid虽然直接使用appium类,但是需要使用selennium的语法,因此使用appium的定位语句语法会报错。

    我用到最多的就是

    按照全词匹配查找:driver.find_element(:link_text,'Blog')

    按照text的部分进行查找:driver.find_element(:partial_link_text,'Blo')

  • 相关阅读:
    Java基础——clone()方法浅析
    Unity shader error: “Too many texture interpolators would be used for ForwardBase pass”
    ar 解压一个.a文件报错: xxx.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
    How to set up "lldb_codesign" certificate!
    Unity-iPhone has Conflicting Provisioning Settings
    ETC1/DXT1 compressed textures are not supported when publishing to iPhone
    Xcode 提交APP时遇到 “has one iOS Distribution certificate but its private key is not installed”
    XCode iOS之应用程序标题本地化
    苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置
    Unity 4.7 导出工程在XCode10.1上编译报错
  • 原文地址:https://www.cnblogs.com/nemolmt/p/6206811.html
Copyright © 2011-2022 走看看