• 入行两年的一点思考 at 2020年04月20日

    挺不错的感悟,很正能量。加油!

  • 幕后黑手 crontab at 2020年04月19日

    这个问题挺有意思的。

    我本地试了下:

    $ crontab -l
    * * * * * /bin/date
    * * * * * cat /Users/hengjiechen/pgadmin.log > ~/crontab.log 2>&1
    
    # 确认 date 是不是会持续存在
    $ ps aux | grep date
    ...
    hengjiechen      45574   0.0  0.0        0      0   ??  Z    10:32PM   0:00.00 (date)
    hengjiechen      45542   0.0  0.0        0      0   ??  Z    10:31PM   0:00.00 (date)
    
    # 看下 mail 是不是有增加
    $ mail
    No mail for hengjiechen
    
    # 查看同时段其它进程情况
    $ ps aux | grep 10:32
    root             45573   0.0  0.0  4297100     92   ??  S    10:32PM   0:00.00 /usr/sbin/cron
    root             45575   0.0  0.0        0      0   ??  Z    10:32PM   0:00.00 (cron)
    hengjiechen      50546   0.0  0.0  4269212    476 s002  R+   11:16PM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn 10:32
    hengjiechen      45574   0.0  0.0        0      0   ??  Z    10:32PM   0:00.00 (date)
    
    # 查看这几个进程之间的关系
    $ pstree 45573
    -+- 45573 root /usr/sbin/cron
     |--= 45574 hengjiechen (date)
     \--- 45575 root (cron)
    
    # 删掉最上层的 crontab 进程
    $ sudo kill 45573
    
    # 确认删除结果
    $ ps aux | grep 10:32
    hengjiechen      50608   0.0  0.0  4287752    728 s002  S+   11:18PM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn 10:32
    

    从现象上看:
    1、crontab 定时执行,每次执行会新建一个进程。
    2、如果任务中有些命令没有重定向输出,会持续存在,进程不会自动结束。而有重定向的会自动结束。
    3、mail 默认收不到 crontab 日志通知。至于什么原因,待探究。

    至于原因嘛,还在查询中,这方面资料太少了,大多只是说要用重定向,但基本都没提及不用的话会怎样。

  • 感觉你样样会,但都不精。作为 4 年测试工程师,应该有个主攻方向或者比较深入能拿得出手的技能?

    个人建议,相比于对行业来说需要你学习什么,更建议你关注对于你们自己公司、你们当前项目,你需要做什么,可以去提高质量或者效率,并把它作为你接下来一段时间的主攻方向。如果你觉得你现在做的平台确实能在项目中用起来,那就去收集确认这个平台怎么做更能在项目中让大家用起来,大部分时候时候明确需求比明确技术方案要重要得多,方向不对容易努力白费。

    另外,没见到楼主提到是否有阅读熟悉过公司开发使用的一些框架技术,建议也可以去熟悉下,参与到一些开发设计方案中,这样你的影响力也更大,也更容易看到性价比高的提效方法,产生价值。

    个人觉得,测试开发的核心点不是用工具或者会编程,而是能够用技术的手段更有效地去提高公司项目的质量和效率。

  • 这个是 repeater 自动生成的,对于同一个回放记录来说是固定值,类似回放记录自己的唯一 id 。

  • 看你日志,appium 的两个辅助应用都没给安装([INSTALL_CANCELED_BY_USER]),官方文档有提到可能会用到这两个应用,建议装上?
    官方文档地址:http://appium.io/docs/en/drivers/android-uiautomator2/index.html

    另外,也建议确认下,你的手机是否支持 uiautomator 2 。

    uiautomator2 和默认模式不一样,所以需要加载的内容、对设备的要求也有差异,所以默认模式可以不能代表 uiautomator2 也可以哈。

  • 1 at 2020年04月05日

    心态很赞。

    看到楼主提到自己要补的东西很多,然后后面就只是持续学习,感觉好像楼主还没找到自己接下来一段时间要专注的方向。
    建议还是找准一个方向,定个自己觉得比较有挑战的目标,钻下去想尽办法达成它。然后你会发现,你收获的将不只是这个方向的知识,还有独立学习的方法、一些志同道合的朋友和成就感,这些对以后的成长帮助都会很大。

  • @weizhao1zhao 可以用 jmeter 。可以用 JavaSamplerClient(自己写 java 代码并打包给 jmeter )或者把 grpc 契约包打包成 jar 包,加入 jmeter 依赖后给 beanshell 使用。

    后者相对灵活一些,但会有额外的性能损耗(beanshell 解析器的资源消耗)。

  • TCP 参数优化笔记 at 2020年04月05日

    想了解下,这里提到了很多 “建议将该值设为 xx” ,这里的建议是基于什么场景下给出的?

    我理解参数调优,没有最好,只有最合适的吧。调大了占资源,调小了容易达到瓶颈。没有具体上下文场景的参数调优,真的比默认值好吗?

    另外,能否给个各参数优化前后的性能对比数据?要不只知道要这么做,不知道为啥和做不做的效果区别,感觉有点只是抄答案,记忆不够深刻。

  • 这个写法是可以解决问题,但感觉有点像是补丁,写起来比较别扭。

    建议可以把需要引用不同 page 的部分单独再抽离一层,或者直接写到用例层。这样同层之间跨文件不相互引用,只有上层引用下层,就不会有循环引用的问题。别人理解起来也方便。

  • 写得好全,测试时间被压缩,都可以用这招了。

    其实这种测试时间被压缩的,质量风险大,整个团队都知道。更多是业务确实非常需要,没有这个都无法开展业务,质量风险大也得顶着先上产生价值。这个时候一般就冒烟通过、未覆盖的点列出来且大家觉得可接受,就直接上了。

  • 很完整的文章,各种 python 官方地址,很齐全。

    想请教下,文章中用到的 adb 二进制文件应该是 windows 用的。如果这个包想要做到跨平台可用,不同平台用不同的二进制文件,这个怎么操作?

  • 感觉楼主有点激情不再的感觉。怎么说呢,既然进公司面试有些技术问题也都可以答上来,说明还是有些技术底子的,一直只是做业务不搞改进,不会觉得没什么意思吗?

  • 看到你最后写了 好多 ,我理解你不是没思路,是东西太多不知道从何做起?

    如果是,可以把痛点列出来,解决困难度也列一下,然后按性价比排序,先从性价比高的做起。

  • 我理解这个应该可以做到和切换环境一样,打开灰度开关后 app 内部所有请求都带上这个 header 吧?
    改的都是 http 相关的配置。这样就不用打特定包了?

  • 额,可以直接把你之前可以跑,以及现在跑不了的两端完整日志,以及你的脚本完整发出来吗?看得好累。。。

  • 时间久远,已经不大记得了。。。一般就 2 个方向,一个是读懂相关源码,源码肯定有线索;另一个是想办法搞定网络,抓个包就知道地址了。当时应该是看源码的。

  • 没有特意去了解过,不知道 swift 或者 oc 有没有类似工具。

  • 转自公众号的留言,也一起转过来参与活动:

  • 来自转自公众号的留言:

  • 但是有时候,UI 传参数错误,界面上根本没法判断的。

    如果是严重到影响流程的错误,应该服务端直接返回错误,前端界面对这种错误进行提示(如服务器异常之类的)。
    如果不是严重到影响流程的,可以让前端在网络工具库里给所有发出的请求加日志,去捕获前端发的请求内容。

    不过正如前面有同学提到的,这种很基础的问题(个人觉得,和写文章经常写错别字差不多级别)如果经常出现,与其想办法在自动化里增强发现能力,不如想办法怎么去预防问题。

  • 有谁知道为什么加上.uiautomator2 就报错,不加就可以正常运行

    你把你的自动化脚本发出来,加和不加两个版本都发下?你使用的设备信息也发下(手机型号、操作系统型号等)。要解决问题,先得知道你的操作。

  • 感觉你需要的不是具体的工具,而是一些应用的方式方法,有了方法工具才容易明确。建议可以看看往届 MTSC 大会和这方面有关的议题。

    PS:diffy 也没有在生产环境上进行请求的,他是镜像生产环境的流量到内部新版本应用的环境里回放,对比生产和新版本环境的结果差异。不大理解你上面提到的这个点和 diffy 框架应用有什么直接冲突?

  • 路径中有名字带空格的话,需要用双引号括住,否则命令行会把空格当做间隔符隔开不同参数。

    个人更建议你直接挪到不带空格的路径下。

  • 赞!

  • 应用程序控制台报错找不到路径 Caused by: java.io.FileNotFoundException: \c\Users\shito\sandbox\bin..\lib\sandbox-spy.jar (系统找不到指定的路径。),可这个路径是存在的,有童鞋遇到过这个问题吗?

    能否截图确认下,文件确实存在?