测试之家
  • 社区
  • 问答
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • 注册
  • 登录
管理员
chenhengjie123 (陈恒捷)
第 605 位会员 / 2014-03-16
字节跳动 @ 广州
157 篇帖子 • 5492 条回帖
1433 关注者
17 正在关注
100 收藏
人与人的差距取决于工作、睡觉之外的8个小时!
打赏支持
GitHub Public Repos
  • vue-testcase-minder-ed... 102

    基于百度脑图的用例编辑器组件,支持记录测试结果

  • gs-rest-service 5

    Building a RESTful Web Service :: Learn how to create a RESTful web service with Spring.

  • JavaSpringMvcBlog 5

  • ffmpeg-go 1

    golang binding for ffmpeg

  • ws-qvh 0

    Server for streaming the screen of iOS devices over WebSocket.

  • goav 0

    Golang bindings for FFmpeg (This repository is no longer maintained)

  • gmf 0

    Go Media Framework

  • quicktime_video_hack 0

    Record iOS device audio and video

  • ws-scrcpy 0

    Web client prototype for scrcpy.

  • ChuanhuChatGPT 0

    GUI for ChatGPT API

More on GitHub
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • Appium IOS 测试速度优化策略 at 2015年09月17日

    #4 楼 @happystone 截图和录视频这个可以看下 stf 的 minicap ,doctorq 之前写过一个帖子:STF 框架之 minicap 工具

    对于 xpath 的慢,我目前查看源码后理解的原因是这样的:

    1. xpath 需要遍历整个元素树,生成一个 xml 数据,然后再做 xpath 查找。遍历和在 xml 中进行 xpath 查找都相当耗时。
    2. 除 xpath 外主要有几类方法。
      1. UIAutomation 代码(如 ios-predicate),直接执行,速度杠杠的。
      2. byId,byName,byAccessibility 这些都是边查找边比较,不会遍历所有元素,所以速度相对快。

    至于前面 @among29 提到的 page_source 的坑,不知和我们遇到的是否一样?我们遇到的是用例不稳定,is_display 方法和 click 方法有一定概率失效,结果发现失效原因是 appium 在 find 的时候缓存的对象已经失效(我们项目中是对应的 app 元素已经被 remove+add 过,内存地址都已经改了),但调用这个对象的方法也不会出错(没有任何异常抛出,只是一直 click 会报错,而 is_display 一直返回 False )。标志是获取这个元素的坐标 (el.position) 出来的值很不正常,会有一个带有 e32 的无穷大值。

    现在我们通过改造 appium 对应模块的方法解决,主要改了两处:

    1. 在内部缓存中不仅存储元素对象,还存储元素查找方法。一旦对象无效(如 name 属性为 null)就执行查找方法再次查找,如果找不到(UIAElementNil),就抛 StaleElementReference 异常。对应代码:https://github.com/appium/appium-uiauto/compare/master...chenhengjie123:element-cache-fix

    2. 增加一个 onlyVisible 属性,在 xpath 查找和 byId,byName 查找中跳过不可见元素(ByUIAutomation 暂时还没做,还在构想要怎么做中),一个是提高查找效率(遍历的元素数量少了),另一个是更好地实现 android 和 iOS 脚本复用(iOS 上有些隐藏元素和可见元素有一样的 id 和 name )。对应代码(还在调试中):https://github.com/appium/appium-uiauto/compare/master...chenhengjie123:hide-invisible-elements

    由于修改的不是 appium 核心代码,所以只需要用这个修改后的替代原来的 appium-uiauto 就可以了。

  • 在初创公司做测试的一天 at 2015年09月16日

    抱着女朋友睡觉。。。羡慕死了。。。

  • 在 [AAA] 测试工作的一天 at 2015年09月16日

    最优秀的技能不是你编程能力有多强,而是分析->定位->解决问题的能力

    严重同意。没有最后的解决问题能力真的会大打折扣。

    话说我桌面也是两台电脑,如果加上 server 就更多了。不过相比断点,我更喜欢在用例里加入 debug log 。

    话说你们也是改造 testlink 来编写测试用例?编写效率如何?有机会交流一下。

  • [更新] apple watch 集成构建方案 (已开源) at 2015年09月16日

    Good Job!填的好!

  • 在互联网金融公司工作的一天 at 2015年09月16日

    #4 楼 @face_south 思寒可是大神级人物啊!
    #2 楼 @seveniruby 我晚些估计也要搞接口这些,到时候能问下你不?

  • TesterHome Natvie App at 2015年09月16日

    第五赞!赞赞赞!

  • 在 58 做测试的一天 at 2015年09月16日

    好棒的一天。有孩子就是不一样。
    Q 你可以晒全家福啊,比他们俩多一个,哈哈。

  • 多维度分析:抽象类和接口的区别 at 2015年09月15日

    赞!说的十分透彻。理念方面的东西要说清楚、说全面相当不容易。

    PS:有个小建议:

    接口中的所有方法都是 Public 的,但对于抽象类的声明并没有这样的规则,当然不能是 Private 。为什么不能 Private?因为一个抽象方法需要在子类中实现,但 Private 无法访问子类,因此不抽象类不可能存在 Private 属性。

    这句翻译读起来怪怪的。去看了原文后发现有些地方翻译不是很合适:

    All methods in the interface are public, but there is no such rule for those declared in abstract classes. Those ones can have any visibility except private. Why not private? Because an abstract method needs to be implemented in subclass and private is not accessible from subclass. As you can see, those two ideas are mutually exclusive.

    大致意思是抽象类不需要像接口那样都是 Public 的。它们可以是 Private 外的任何可访问权限。为啥不能是 Private ,因为抽象类需要在子类中实现,而 Private 是不能被子类访问的。因此,Private 与抽象类的用法是互斥的。

    译文中的 因此不抽象类不可能存在 Private 属性 这里第一个 “不” 字应该是写多了。

  • 日立咨询离岸外包测试的一天——恒捷 at 2015年09月15日

    #7 楼 @shixue33 补充上去了。虽然没有两千字那么多,但浓缩的都是精华哦。

  • 互联网终端测试工程师的一天 at 2015年09月15日

    没有这些琐碎的过程,永远不能到达精彩的彼岸

    说得好!

  • 日立咨询离岸外包测试的一天——恒捷 at 2015年09月14日

    #7 楼 @shixue33 哈哈,好。我这两天补充一下。

  • [已解决][求助] 关于 IOS 的 swipe 操作无效及一些疑问 at 2015年09月14日

    #2 楼 @cydtest 这个 swipe 无效是模拟器的问题。真机没有这个问题的。 mobile: scroll 就是针对这个问题的 work around。
    详看:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/touch-actions.md#bugs-and-workarounds

  • MonkeyTalk 移动 App 自动化测试 at 2015年09月14日

    #7 楼 @wodeta33 你们先看看 README 吧。
    没记错应该在那个 MonkeyTalkIDEProfessional 文件夹里面。

  • 在苏州创业公司做测试的一天 —— 大海篇 at 2015年09月14日

    不错的一天,很有条理。

  • 澳洲软件测试攻城狮的一天 (女生版) at 2015年09月13日

    #3 楼 @Yuiking 印度同事

  • 日立咨询离岸外包测试的一天——恒捷 at 2015年09月13日

    #2 楼 @link1220 你是羡慕我有这么长的学习时间呢,还是佩服我有这么长的学习时间呢?

  • MonkeyTalk 自动化持续集成方案 at 2015年09月13日

    Hi,我们建立了一个 wiki 作为近期 MonkeyTalk 文章的合集:
    https://testerhome.com/wiki/monkeytalk

    能否在更新文章的同时更新一下这个合集,并把这个合集的地址附在文章开头,方便大家查看和浏览?
    谢谢!

  • 如果使用 Selendroid 模式,那么被测应用必须加入<uses-permission android:name="android.**permission.INTERNET"/>这个权限? at 2015年09月11日

    selendroid 可以测试 webview 啊。

    那个权限是网络通讯权限,是必须的。

    Selendroid 的方式类似于在 app 里面增加一个 agent ,所以需要获得网络通讯的权限才能和电脑通讯。

  • 发一个 appium 测试 android 版本 chrome 的代码 - Java 方向 at 2015年09月11日

    Good job!

  • [上海] 拍拍贷-招聘测试工程师 at 2015年09月11日

    你的 markdown 是不是用错了?标题都不是重点。

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

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