测试之家
  • 社区
  • 问答
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • 注册
  • 登录
会员
joko (joko)
第 1214 位会员 / 2014-07-04
1 篇帖子 • 65 条回帖
46 关注者
0 正在关注
46 收藏
未设置 GitHub 信息.
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月20日

    #110 楼 @JeffLiu 没用到 stf,用的是 stf 里 minicap 截图

  • 深入理解 Android 自动化测试 at 2016年12月19日

    想看

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月19日

    #105 楼 @automation 感谢回复,linux 和 macos 做了处理,原因是因为 linux 和 macos 启动后会有独立的 logcat 进程,但 windows 不是(目前观察来看是这样),所以没办法单独关闭单独 logcat 的进程。windows 这部分模块没想好怎么处理

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月16日

    #102 楼 @zlx_lizzy 安装 app 失败了,检查下手机安装时是不是有一些弹窗,选择确认。目前仅封装了一些常见手机弹窗的处理

    #103 楼 @xiaocong168 demo 自带了两个用例,第二个用例继承上一个用例(每次执行完毕后会初始化环境)

  • appium python 脚本,如何判断元素存在就点击,不存在就点击另一个元素? at 2016年12月16日

    不需要 try,判断 Element 获取控件后返回是不是 None,是的话点击另一个控件即可

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月14日

    #92 楼 @gmjdadk 换 linux 把。html 改的很好看,你要有兴趣可以提交一下,我来合并。

    #93 楼 @jaylin 1.用用例文件夹区分 。2:需要改动下遍历用例的方法,增加一些过滤关键字

    #94 楼 @aya 1.这块代码我重写了,改成检测是否存在,你可以更新下。我也发现好像 7.0 获取不到信息。2.第二段报错的原因猜测是某些设备获取不到某个值,或者值的类型有问题。用 str 包裹一下就好。主分支我目前也这么改了,谢谢

  • [2016年 终卷] 毕生发展,专项,在每个美好前停留 at 2016年12月09日

    很棒!知识的整理归纳很重要,学习了

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月09日

    #85 楼 @gmjdadk 检查下 adb 环境配置,看看 pycharm 访问的 adb 是否与命令行相同

    #88 楼 @a_little 与楼上相同,检查下 adb 配置,用 os.system 执行下 adb devices,看看设备链接状态

    #86 楼 @NJ-zero 好的,我再看看,可能取设置属于的时候还是有问题

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月08日

    #78 楼 @gmjdadk 未来会支持,短期之内(二个月)不会支持

    #79 楼 @cissy 帮忙贴一下安装那块的日志,我看下

    #80 楼 @quqing

    1:书写用例的方式已经极低了压缩撰写用力的的成本。

    • 例如原始用例:登录 - 发照片 - 注销
    • 需要变更为:登录 - 发作业 - 发照片 - 注销

    在用例层只需变更用例的继承名即可。

    2:cpu 与内存我觉得是报告里最有价值的东西,横向对比可分析出迭代后相同模块的性能异常问题,通过性能异常可深入追查代码层面异常,举个实际的例子:本次此用例业务内优化了加载的方案,从用户无法明显感知,所以就要从性能入手,确认优化效果

    3.关于日志过滤只有 exception,大部分异常其实只能通过 debug 日志才看出,目前没有有效的方式处理,之后可能会增加关键词过滤

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月07日

    #72 楼 @JeffLiu 这个错误是我自定义的报错,原因是因为执行测试的手机,未安装上测试 app,尝试 4 次没成功后就会报错,你提供下你的电脑系统,和你的手机品牌与型号,我看看能不能找到 不能安装的问题。或者你尝试手动 adb install 试试

    #74 楼 @gmjdadk 问题修复了,你拉下提交,应该是某些手机 wifi 状态问题导致

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月06日

    #69 楼 @cissy 你这是 win10 吗?你拉取最新的提交,我这边已经尝试修复了问题,win7 上测试没问题
    #65 楼 @a_little

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月06日

    #65 楼 @a_little
    你方便留下联系方式吗,我远程看看异常状态,刚才楼下的朋友问题是因为 appium 配置问题,我远程连接看了下,异常已经解决了

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月06日

    #66 楼 @JeffLiu
    #65 楼 @a_little

    稍等,我正在看这个问题,今天应该能解决,原因是 windows 启动进程的方法有问题,linux 和 macos 我测了没问题

  • 安卓手机的性能测试问题 at 2016年12月06日

    adb connect

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月06日

    #63 楼 @xiaocong168 不需要手动打开,代码里已经用命令方式开启,我在最新的提交里加了启动的日志,你再失败的话,把日志贴出来看看

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月06日

    #61 楼 @xiaocong168
    #57 楼 @JeffLiu

    这个问题都是因为 appium 没起来,你们要是方便的话重新拉取下 github 最新的提交,我在这块加了写 log,用于分析问题

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月06日

    #57 楼 @JeffLiu 不用手动开启 appium 的,你的电脑是什么系统,win10?

    #58 楼 @a_little {}是 Python .format() 方法用于拼接字符串,不相同手机所需的 minicap 包均不相同,所以查到手机信息后用这个来替换路径

    #59 楼 @xiaocong168 你这个报错是因为手机版本是 4.1.2,获取不到手机的 resource-id,需要手 4.2.2 以上的手机

  • 坚持的力量 at 2016年12月02日

    厉害!

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月02日

    #48 楼 @410637312
    #50 楼 @lose
    设计框架的时候需要考虑到这些,用的是单例模式,每个线程不会互相影响。关于错误的捕捉:

    1.来看代码,解释器方法包裹了一个错误捕捉器。用来捕获执行成错误的原因

    
    def e():
        """
        捕获用例执行函数异常安装
        :return: True|AssertionError|AttributeError
        """
    
        def E(func):
            def wrapper(*args, **kwargs):
                error_msg = True
                try:
                    return func(*args, **kwargs)
                except AssertionError as e:
                    U.Logging.warn(traceback.format_exc())
                    U.Logging.error(e)
                    error_msg = 'Assertion error'
                except AttributeError as e:
                    U.Logging.warn(traceback.format_exc())
                    U.Logging.error(e)
                    error_msg = 'Attribute Error'
                except Exception as e:
                    error_msg = traceback.format_exc()
                    U.Logging.error(e)
                finally:
                    return error_msg
    
            return wrapper
    
        return E
    
        @e()
        def __analysis_yaml(self, path_yaml):
          pass
    
    

    2.错误日志的捕捉

    • 1:应用启动时在后台记录 log
    • 2:任务结束时分析 log,过滤 exception
    
        def logcat(self, log_path):
            return self.adb('logcat -v time > %s&' % (log_path))
    
    class Anl:
        def __init__(self, all_result_path):
            self.all_result_path = all_result_path
    
        @U.l()
        def __log_file(self, all_path_result, the_suffix_name):
            """
    
            :return: 日志列表
            """
            return GetFilePath.all_file_path(
                all_path_result, the_suffix_name).values()
    
        def analyze(self, log_file):
            """
            过滤Exception到log文件夹内
            :param log_file: log的路径
            :return:
            """
            errorId = 0
            go_on_id = 0
            log_filter_name = os.path.split(log_file)[1].split('.')[0]
            with open(self.all_result_path + '/log/{}filter.log'.format(log_filter_name), 'w') as s:
    
                with open(log_file) as f:
                    for line in f:
                        if 'Exception' in line:
                            go_on_id = 1
                            s.write('#' + '-' * 40 + '\n')
                            s.write(line)
                            errorId = line.split('(')[1].split(')')[0].strip()
                        elif go_on_id == 1:
                            if errorId in line:
                                s.write(line)
                            else:
                                go_on_id = 0
    
        def main(self):
            """
            获取log,生成filter log
            :return:
            """
            for log_file in self.__log_file(self.all_result_path, '.log'):
                self.analyze(log_file)
    
    
    

    这样执行过程中的异常和错误的异常均能捕捉,查看报告即可

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月01日

    #43 楼 @Jhon
    #41 楼 @liruiyu
    #35 楼 @sunkuan2007
    如果你们都是 python2.7 的话,重新 git 下我最新的提交,我换了一种多进程的启动方法。看看还会不会报错

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月01日

    #45 楼 @Tank007 你好
    问题 1:
    可以直接显示在 html 上,启动测试的时候同时启动个线程读 logcat,发现关键字,就把那段日志存到 html 即可,目前没做的原因是因为我目前还不会 js,做不出那种开关按钮的效果。不然错误日志都展示的话,样式太丑

    问题 2:目前你看到的是每个测试用例是单独的日志,linux 上和 macos 处理的都比较完美,windows 目前还没找到完美的解决办法

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年12月01日

    #42 楼 @Jhon
    #41 楼 @liruiyu 你们的 python 环境是多少?电脑环境是什么?

  • 跑偏了的测试开发之路和之后的想法 at 2016年12月01日

    期待你关于人工智能的分享

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年11月30日

    #38 楼 @a_little python3 我还没开始兼容呢,所以会报错,近期会兼容 python3

  • [开源分享] 基于 appium 的自动化测试工具,支持多进程,性能采集分析等 at 2016年11月30日

    #33 楼 @jphtmt yaml 并不是用 ConfigParser 实现的,这两个不能混为一谈。
    在本工具内:ini 作为信息配置管理与路径管理,yaml 作为 testcase 的管理。

    这个的区别是:ini 有更好的索引,天生适合作为配置文件。yaml 的优势在于支持多种数据格式,适合与语言直接粘合

  • 上一页
  • 1
  • 2
  • 3
  • 下一页
  • 关于 / 活跃用户 / 中国移动互联网测试技术大会 / 反馈 / Github / API / 帮助推广
    TesterHome社区,测试之家,由众多测试工程师组织和维护的技术社区,致力于帮助新人成长,提高测试地位,推进质量发展。Inspired by RubyChina
    友情链接 WeTest腾讯质量开放平台 / InfoQ / 掘金 / SegmentFault / 测试窝 / 百度测试吧 / IT大咖说
    简体中文 / 正體中文 / English

    ©testerhome.com 测试之家   渝ICP备2022001292号
      渝公网安备 50022202000435号    版权所有 © 重庆年云聚力信息技术有限公司