zoukankan      html  css  js  c++  java
  • 【原创】运用wetest云真机集群实现深度兼容测试-appium版

    背景需求

    新版本上线视频录制与照片合成功能
    基于阿里云视频SDK(趣拍)实现,针对安卓海量机型尤其是视频类功能必然存在各种各样的兼容性问题
    那么问题来了,如何找出这些问题机型?

    技术选型

    自建云真机平台

    目前主流的方式两种 
    1、STF
    2、ATX
    我们选择的是ATX
    因为公司机型比较少,所以能够发现的问题不够全面
    问题汇总
    https://www.meipian.cn/1j3xplf3

    云测解决方案

    1、Testin
    一次八千,类似苹果的模式封闭系统,只要把相应的app与指定的流程提交即可开始,适合测试团队技术实力不是很强的初创公司
    效果没有想象中好,一些自建平台发现的问题亦未能覆盖,且一些截图与用例描述无法对应,使用完充值额度后弃用

    2、Wetest
    使用的应该是还未公开的功能,上传脚本驱动wetest的云真机实现兼容测试效果

     
    • 接入的时候遇到了一些坑
      • 引导文档中提供的是java版本,但java版的脚本完成后上传发现不可用,咨询客服发现目前仅支持python版,emm··· 重撸
      • 脚本运行中如果初始化使用了重启app的方式,wetest会判定为进程异常退出并收集到报告中出现测试结果大面积不通过的情况,此时的解决方案有两种一种是不用重启app作为初始化的方式,第二种方式为上传指定字段让wetest忽略这种异常
      • 一些报告中的bug···

    但总体效果还不错,利用全平台三百余台机型可以覆盖到绝大多数主流机型以及不同的安卓版本
    https://www.meipian.cn/1juqs991

    运行截图
    http://v.youku.com/v_show/id_XMzk2NDY1ODQ5Ng==.html?spm=a2h3j.8428770.3416059.1

    替换后的初始化case方式

    每次case操作完成后,通过系统back上一页直至返回到应用主页

    def fanhui(self):
    while self.wetestdriver.wait_for_activity(".ui.main.MainTabActivity") is False:
    logger.info("不是首页,返回")
    os.popen('adb shell input keyevent 4')
    time.sleep(3)

    或者提示wetest平台忽略

    platform=platform_helper.get_platform_client()
    platform.procdiedreport(False)
    一些会莫名其妙弹出来的框

    回到主页时,因为业务逻辑的原因,可能会弹出让你去领红包,可能弹出让你去同步通讯录好友,可能让你去参加一个签约作者计划··· 防不胜防
    解决方案:感觉方法还不够智能但还算实用,即在回到主页初始化后监控所有可能会出现弹框并且给点掉

    from selenium.webdriver.support import expected_conditions as EC

    def passpop(self,content,ci):
    for i in range(ci):
    loc = ("xpath", "//*[@text='%s']" % content)
    try:
    e = WebDriverWait(self.driver, 1, 0.5).until(EC.presence_of_element_located(loc))
    e.click()
    print "Get alert: %s" % content
    except:
    pass

    最后国际惯例

    项目地址
    https://github.com/maple42/WETEST-APPIUM

  • 相关阅读:
    生成括号问题(22)
    Starting Jetty: Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jetty/start/Main : Unsupported major.minor version 52.0
    Oracle 使用Nid 修改数据库的DBID 和 Database Name
    Oracle SCN与时间的相互转换
    Oracle 启动 停止JOB
    Apache 负载均衡 端口转发 配置
    Oracle 将 A 用户下所有表的增删改查 赋予 B 用户
    更改表空间及数据文件的名称
    Oracle 缓存命中率问题一则(里面有个问题咨询大佬们)
    更改python版本
  • 原文地址:https://www.cnblogs.com/maple42/p/10190557.html
Copyright © 2011-2022 走看看