专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

自动遍历工具APPCrawler的教程

  简介
  AppCrawler一个基于自动遍历的App爬虫工具。最大的特点是灵活性,可通过配置来设定遍历的规则。
  谷歌的自动遍历的工具GoogleAppCrawler,设计的思想也一致。
  优点和缺点
  优点AppCrawler是基于Appium开发的,所以支持Android、iOS,支持真机和模拟器对遍历的页面、控件、事件、深度等都可自由控制,可通过配置来设定遍历的规则可通过配置来设定遍历的规则(比如设置黑名单和白名单,提高遍历的覆盖率)可定制:可自定义操作,如输入,滑动等其本身的遍历深度覆盖较全,比如它拥有APP的dom树,根据每个activity下的可点击元素逐个点击,比monkey更具有规律性,覆盖更全面生成的报告附带截图,可以精确看到点击了哪个元素及结果,对crash类的问题定位清晰
  缺点只能定位一页,对于翻页的无法进行下滑再点击,导致下面的内容无法遍历(需要自己设置下滑然后翻页)对于调用第三方应用的不太稳定,比如每次到上传头像处就停止遍历对于整个layout区域是可点击,但是其中某个元素是不可点击的,没有进行遍历点击,比如:左上角的设置和右上角的私信都不能遍历到对于H5页面无法进行精确的定位点击,比如它的整个布局layout是一个大模块,不能进行点击运行速度较慢:AppCrawler是基于appium开发具备了跨平台的优点,但是也因为这层封装造成了运行速度相对较慢使用门槛高:正因为使用灵活性的问题,也造成了使用门槛的提高,主要基于yaml文件中使用appium的相关技术知识进行配置,这就对使用者有了一定的技术要求
  安装和启动Crawler
  1、安装最新版的AndroidSDK,保证它包含最新的buildtools和platformtools
  2、java11(18不行)
  3、下载AppCrawler,解压appcrawler。zip包,进入到解压目录
  4、替换crawllauncher。jar为最新版本,记得把名称改成:crawllauncher。jar。(2023。1。28查看的最新版本是2。7。4)
  5、安装和启动Appium
  控制台输入:appiumsessionoverride,命令的意思是每次去执行的时候,不需要清理appium这个进程
  6、启动Android模拟器,或者通过USB连接一台Android手机
  通过ADB工具检测设备是否连接:adbdevices
  7、启动Crawler执行后会自动遍历
  启动命令:javajarcrawllauncher。jarcapabilityappPackagecom。xueqiu。android,appActivity。view。WelcomeActivityAlias如果是windows需要给capability参数加上修改对应文件的appPackage和appActivity信息,比如javajarcrawllauncher。jarcapabilityappPackagecom。addcn。newcar8891,appActivitycom。addcn。newcar8891。ui。activity。WelcomeActivity或者使用:javajarcrawllauncher。jaraapkpath(如果apk是无法识别包名和活动页面的,需要加上参数capability)
  查看CrawlerOption的命令:javajarcrawllauncher。jar
  8、退出
  控制台输入ctrlc,生成测试报告。
  它会在当前目录下,生成日期名称的测试报告文件。可以使用o制定测试报告的生成路径。输入两次ctrlc是强行停止。
  定制化配置
  以AppCrawler的配置文件完成定制化的自动遍历,以下为介绍配置文件的用法和一些特殊场景的处理。
  配置文件的用法
  模版文件生成
  运行命令:javajarcrawllauncher。jardemo,会在当前目录下生成一个demo。yml文件,这进行定制化的配置文件模板。
  添加插件
  测试报告参数
  loglevel日志等级
  saveScreen是否截图,一个截图时间2s
  reportTitle报告名称
  capability参数
  与appium完全一致
  可以配置apk、appPackage、appActivity
  控制台的命令,是可以覆盖配置文件的capability参数的
  dontStopAppOnReset参数
  dontStopAppOnReset:true
  这个参数允许我们在某个页面继续执行遍历,比如我们希望App先进入到某个页面后再进行遍历,或者当一个session结束后继续下一个session的时候我们希望不要杀死App重新执行,而是继续上一次结束的页面开始执行
  ignoreUnimportantViews参数
  这个参数设置为true的时候可以忽略不重要的view,加速pageSource的加载,加快测试速度
  testcase测试用例
  用于启动APP后的基础测试用例
  完整形态
  given:先决条件,只有条件成立的时候才完成后面的操作
  when:对什么事件做什么事情
  then:断言集合,事件结束后对结果断言testcase:name:TesterHomeAppCrawlersteps:when:xpath:action:driver。swipe(0。5,0。8,0。5,0。2)when:xpath:action:driver。swipe(0。5,0。2,0。5,0。8)then:〔contains(text,登录)〕
  简写形态
  直接使用xpath对应when里面的xpath
  直接使用action对应when里面的actionxpath:元素定位路径action:clickthen:〔contains(text,登录)〕
  action的动作支持
  :只是截图记录
  back:后退(android有back,ios的back需要给返回按钮的元素定位才可以使用)
  backApp:回退到当前的App,默认等价于back行为可定制
  monkey:随机事件
  xxx()执行代码:
  Thread。sleep(1000)
  driver。swipe(0。9,0。8,0。9,0。5)
  click:点击事件
  longTap:长按
  除以上所有行为外均视为输入行为
  定位模式除了可以使用xpath之外还可以使用正则和包含关系
  正则
  使用开头的就认定为正则,确定,。输入密码
  包含
  可以使用元素其中包含的内容进行定位;密码,输入
  selectedList:制定遍历控件
  定义了哪些控件要被遍历到
  这里如果想设置让其点击所有可点击的TextView和ImageView控件,修改完成如下:selectedList:xpath:android。widget。ImageView〔clickabletrue〕xpath:〔clickabletrueandcontains(class,Text)〕
  firstList::优先遍历
  哪些控件被优先遍历
  lastList:最后遍历
  哪些控件被最后遍历
  backBatton:返回按钮
  返回的时候点击哪个按钮(ios需要)
  blackList:黑名单
  用在不想让它变里的元素上
  比如:相机、忘记密码、支付等
  tagLimitMax:全局设置
  同类型的最多点击的次数;这里设置为2次
  tagLimit:自定义控件类型的点击次数
  这里设置对于ListView类型的只点击一次
  maxDepth:遍历的最大深度
  triggerActions:触发器,特定条件触发执行动作的设置(触发规则)广告、升级弹框在测试过程中突然出现某些动作需要输入某些动作需要特定次数的操作这样每次出现弹框都会被处理测试中途碰到了账号密码输入框需要输入的可以提前在triggerActions中设置times:需要点击几次,不写,表示出现了这个元素就会被点掉(比如应用在:稍后再看、关闭、取消等按钮)点击弹窗的关闭按钮triggerActions:xpath:〔contains(resourceid,cancel)〕action:clicktimes:1
  登录案例triggerActions:action:clickxpath:〔resourceidcom。xxx。test:idlogin〕times:1action:0940xxxxxxxxxpath:〔resourceidcom。xxx。test:idphoneedit〕times:1action:123456xpath:〔resourceidcom。xxx。test:idpwdedit〕times:1action:clickxpath:〔resourceidcom。xxx。test:idbtnsubmit〕times:1
  执行定制化的配置文件
  命令:javajarcrawllauncher。jaraapkpathcappdemo。yaml
  测试结果如果没有使用o参数指定log输出的路径,appcrawler就会在当前目录下生成以时间为命名的文件夹,里面保存了所有的数据,文件、截图、log。打开文件夹会发现如下,每一步都会进行截图(这也是速度变慢的原因之一吧)以及对于的dom文件,这里会看到有几个steps文件,这个只是随意点了某个操作来告知用户正在操作,真正的执行步骤是从这之后开始。在测试log中有一个index。html文件,打开它会看到刚才运行的测试报告,appcrawler会把每一次点击当做一个测试用例,没一个页面当做是一个测试套件;将界面和界面内的控件点击模拟成了测试套件和测试用例的关系。成功的用Succeed表示,Canceled是遍历的时候发现有这个可点击的控件,但是最后却没遍历到的控件。在生成的文件夹中有appcrawler。log,里面记录了详细的执行步骤的log信息(加上vv参数运行的话会得到更多更多的log信息)。index等于几就表示第几次事件,action表示当前的操作,xpath就表示当前操作的元素的xpath表达式appcrawler的一个基本认识,既然提到了它的定制化的特点,就需要通过配置文件来完成了。
  框架组成
  底层有个叫AccessibleServices东西,它可以获取Android所有界面的控件。uiautomator获取元素进行操作的时候,就是靠AccessibleServices去获取控件,然后去触发一定的行为,uiautomator就是将其进行了包装。基于uiautomator,appium开发了一个uiautomatorserver,appium走的是HTTP协议ATX开发了一个uiautomator2,maxim就处于这一层,ATX走的是JSONRPC协议
  appcrawler处于最上层,所以appcrawler由于多了两层封装,再加上运行过程中加入了截图(可以在配置中取消,但是取消后不利于结果的查看),运行起来自然就慢了。
  遍历原则
  它的遍历原则是,找页面的里层次最深的元素,也就是处于中心位置元素会被优先遍历
  常见问题
  1、问题:运行后提示OptionUnknown
  解决:建议换成最新的crawllauncher,使用正确的Option,查看命令:javajarcrawllauncher。jarpath。
  2、问题:运行命令后提示找不到设备,但是adbdevices可以查询到设备。
  解决:数据线重新连接手机,再次允许手机权限即可解决。
  3、问题:提示crawler运行成功,但是Found0crashes。
  解决:使用最新版本的crawllauncher。jar,option换成a或者capability等方式启动即可解决。
  4、问题:手机已经存在最新版本的APP,运行命令使用了a安装旧APP版本,提示降级error。
  解决:删除手机最新版本的APP,或者安装更新版本的APP,或者使用其他的option启动crawler。
  5、问题:启动命令执行后提示:〔W3C〕error:Activityname。ApiDemosusedtostarttheappdoesntexistorcannotbelaunched!Makesureitexistsandisalaunchableactivity
  解决:需要修改遍历文件中的包名即可。
  6、问题:app运行比较慢,容易超时怎么办?
  解决:AppCrawler默认每次操作时会等待500ms;通过triggeraction来解决需要等待的条件,xpath为进度条,action为sleep1s,截图操作是可关闭的。
  7、问题:tagLimit会限制同属性但不同层级的元素吗?
  解决:tagLimit限制的是相同的父节点层级,不管属性,是看布局的层级
  8、问题:如何防止遍历的时候不小心跳到别的应用?跳到别的应用后怎么回来?
  答:会自动跳转回来的。除非设置了App的白名单
  9、问题:页面需要在当前页不停滑动加载测试
  答:遍历完当前页后用afterpage参数设置滑动
  10、问题:appclawermaxDepth:这个层级是如何定义的?
  答:maxDepth可以从log中看到,AppCrawler。log中有一个Stack的输出,里面默认保存的是所有activity的栈记录。
  11、问题:Couldnotdeterminewhetherclass‘org。pegdown。Parserparboiled’hasalreadybeenloaded
  解决:java版本换成11,有些api可能被禁用了

气泡微机器人操控研究获进展能够自主运动的微马达(Micromotor)技术得到了发展和关注。作为典型的活性颗粒,微马达往往由表面物理化学属性相异的两部分组成,将周围环境中的能量(如化学能等)转化为自身运动的河北威县小工厂释放科技创新大能量来源人民网河北频道原创稿以前每一条生产线从上料到成品下线,需要七八个工人配合才能完成。现在经过智能化改造以后,一条生产线只需一个工人看管上料即可完成之前的工序,降低了人工成本,提高268亿元吞下安世半导体,收割欧菲光资产切入果链,闻泰科技下一步要全面布局汽车市场(全球TMT2022年12月16讯)苹果公司砍单和供应链转移的消息正在考验着果链企业的韧性。此前全球TMT撰文介绍了立讯精密和歌尔股份,而作为国内果链重点企业还有一家不得不提,那就跨过一英寸门槛的vivo2000年,夏普发布第一款带镜头的手机JSH04。不过夏普JSH04那颗仅11万像素的镜头拍照素质相当一般,也没掀起什么波澜。但谁也没想到,随后这20年里,手机影像有了翻天覆地的变海康威视的人均效益在海康威视的追踪上,从海康威视的创新碎片化业务模式的理解海康主营业务的三个关注点分别去解读海康(见前期文章)。从逻辑和数据来看,当下的数据支撑了我之前对海康的模糊印象,海康自下而上新基建包括哪些行业?(附相关行业龙头)新基建简称新型基础设施建设。我们现在提到的新基建通常是指信息数字化的基础设施。具体包括有七大领域5G基站建设特高压城际高速铁路和城际轨道交通新能源汽车充电桩大数据中心人工智能和工业2022长三角高新视听博览会15日开幕,江苏号百以自研科技定义数智新生活每秒220公里,太阳带领八大行星以波浪螺旋形状,向宇宙深处,飞速狂奔。一如江苏号百科技有限公司,以5GAI为个人与政府企业用户赋能,升级迭代8大应用,向数智时代,迅猛前行。2022OktoberTech生态创新峰会开幕,演绎数字智能,低碳未来导读12月14日至15日,OktoberTech英飞凌生态创新峰会隆重线上举办,此次峰会以数字智能低碳未来为主题,在回顾并展示近期英飞凌大中华区生态圈建设最新阶段性成果的同时,重点下嫁日本林志玲被家暴回湾修复?具俊晔资源被林志玲老公分走前段时间知名大V曝出一则八卦,称嗲嗲姐被老公打掉脸部假体,回蛙蛙找了几个知名贵妇医生进行紧急修复。通过这条消息有网友猜测,嗲嗲姐应该是说话声音很嗲的女明星,蛙蛙则是湾湾的谐音词,回津云镜头天津西青又添一处休闲购物好去处!12月16日,经过精心筹备,万众瞩目的天津西青万达广场破茧成蝶,精彩绽放!该项目在建筑特点上进行了多项创新设计,融合盒子街区的概念,打造前后双巨型广场后中央广场独特设计了下沉花园和江阴历史名人季芝昌季芝昌(17911861),原名震,字云书,一字号仙九,别署丹魁堂主。江苏常州府江阴县青阳季家库(今江苏省江阴市桐岐镇)人。清道光十二年(1832)壬辰科吴钟骏榜进士第三人。季芝昌
美媒将2023年目前最好的30名控球后卫划分成五档,东契奇一档202223赛季控球后卫这个位置已经发生了巨大的变化,不少人认为卢卡东契奇已经接替了库里,成为控球后卫位置上独一档的球员。为此,美媒FadeawayWorld列出了2023年目前最口袋奇兵新英雄邦尼和里德评测,一文告诉你到底该不该培养?新空军英雄邦尼和里德来了,值得萌新培养吗?右上角快分享给你的盟友不论是否玩空军,3000钻石抽取10个碎片,凑齐图鉴。对比莎琳娜强度以出征9格,每格10个单位,生命加成1000为基好消息!朱婷领跑意大利联赛最佳球员评选榜单,还有可能喜上加喜头条创作挑战赛远在意大利联赛征战的朱婷传来好消息。在意甲女排联赛官方Facebook进行12月最佳球员投票活动中,朱婷凭借12月四场比赛拿下63分帮助球队升到积分榜第二而入选。目前击穿天玑8100的底价,5080mAh67W144Hz,已跌到1519元联发科这两年终于站起来了,定位旗舰市场的天玑9000系列芯片,性能强悍,口碑也不低,而定位次旗舰市场的天玑8000系列芯片,也收获了不少用户的点赞。本文要介绍的这款手机就是搭载了天山东这座机场将全面改扩建,投资500。84亿元,打造第二座4F机场!一个城市如果想要实现海陆空全面立体的交通发展,这与其经济实力是相通的,与其发展速度是相互联系的。在发展速度不断增快的同时,交通需求同样在不断提升,不断优化。之前我们讲了很多关于陆地虚商卷土重来移动物联网业务转售胜算几何?转眼间,2022年已经落下帷幕。在进行通信行业年终盘点的时候,笔者察觉,在过去一年,虚商几乎销声匿迹,这和曾经的高调形成了鲜明的对比。正在笔者为虚商扼腕叹息的时候,又听闻虚商行业在反转,姆巴佩要求皇马必须签下阿什拉夫和特奥,自己才同意转会!近日,姆巴佩转会皇马又出现反转。此前,因为姆巴佩在即将签约时突然反悔,让皇马非常愤怒,俱乐部公开表示不会再寻求签下这名法国前锋。但是,根据西班牙每日体育报报道,皇马还在私下考虑签下电讯报伯利认为伤病潮导致球队战绩不佳,依然对波特充满信心直播吧1月6日讯据每日电讯报报道,对阵曼城的英超比赛,切尔西主帅波特大胆启用了年轻球员,对于这名英格兰主帅规划球队发展的方式,俱乐部依然对他充满信心。在遭遇伤病潮的情况下,波特之前山东泰山锋线再添强援,郭田雨或让出7号球衣,克雷桑开心了足协杯14决赛第二回合,郭田雨因为家中有事离开。这一离开,很有可能让他的位置不保,更有甚者会让出7号球衣。因为山东泰山锋线上再添强援,克雷桑这下开心了。郭田雨2021赛季,虽然打进足总杯1埃弗顿北京时间1月7日凌晨4点,202223赛季英格兰足总杯第三轮先赛一场,曼联主场对阵埃弗顿。上半场,拉什福德助攻安东尼闪击破门,随后考迪利用德赫亚的失误扳平比分下半场,拉什福德制造考湖人队买断市场3大目标詹皇兄弟有望再度来投,昔日2K神将在内如果NBA湖人队想在本赛季取得一些成绩,比如进入附加赛打上季后赛,那么他们就需要在买断市场有所作为,湖人队大名单现在还有一个名额,他们可以去追求一些三分球好手,以此来解决球队的一大
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网