• 可以直接给 httprunner 提个 pr ,修复下这个问题?

  • 建议先和领导沟通确认下,他想要的到底是啥,想解决什么具体问题?

    领导给的是方向,我们要沟通得出他为什么想要做这个,具体想要做成什么样,澄清他的需求。把方向直接当做目标,不一定就是正确的。

    这类文档规范很多,例如 google 的 Lighthouse ,但要做好要耗费不少精力的。首先得能监控到线上的访问速度数据(测试环境再快也没用,用户慢还是慢),然后对于特别慢的针对性定位解决处理,积累经验。最后再逐步把这个事情常态化,变为规范在开发阶段就遵守落地。

    一上来就直接到最后一步,整体团队很多时候并不那么容易转变过来的。在性能不能和当前业务需要挂钩时,做性能是很难得到团队的支持的。

  • 可以试试文中的套路?如果是有具体哪个点卡住了可以具体发出来。

  • 测试陷阱 1 - 放弃怀疑 at 2019年10月31日

    非常同意,放弃怀疑其实就等于放弃了提前发现问题的机会,问题是不会自动消失的,所以整个团队最后还是会被这些问题所累。

    而且很多时候放弃怀疑的人在很多地方也都放弃了思考,变成单纯的执行者,只有工作年限带来的经验值,很容易被保持思考的应届生超越。

  • 建议排查思路:

    1、看下 appium 服务端日志,看下具体的报错信息是什么?
    2、看到报错信息,再对应去排查。

    现在你的错误日志已经在引导你去看 appium 服务端日志了(unknown server-side error,未知的服务端错误),所以你下一步最好就直接去看服务端日志看具体是什么报错。

    没有这个报错信息,大家也很难协助你,因为线索太少了。

  • 小建议,rabbitmq 有 java client 的,直接用那个把消息加到 mq 里是不是更直接省事?

    按照我们目前实践,除去配置项,用 client 5 行代码内应该就可以完成连接队列 + 插入消息的操作了。

  • 哈哈,认同。

    不是修改后问题消失了就是解决了,很可能问题其实没消失,只是变成另一个问题了,所以现象不同了。

  • 我测试了下,这个写法没问题。

    完整用例:

    - config:
        name: testcase description
        variables: {}
    
    
    - test:
        name: /account/sign_in
        request:
            headers:
                If-None-Match: W/"bc9ae267fdcbd89bf1dfaea10dea2b0e"
                User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36
                    (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
            method: GET
            url: https://testerhome.com/account/sign_in
        extract:
            X_CSRF_Token: <meta name="csrf-token" content="(.*)" />
        validate:
            - eq: [status_code, 200]
    
    - test:
        name: /account/sign_in
        request:
            data:
                commit: Sign In
                user[login]: chenhengjie123
                user[password]: xxx
                user[remember_me]: '1'
                utf8: ✓
            headers:
                Content-Type: application/x-www-form-urlencoded; charset=UTF-8
                User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36
                    (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
                X-CSRF-Token: $X_CSRF_Token
                X-Requested-With: XMLHttpRequest
            method: POST
            url: https://testerhome.com/account/sign_in
        validate:
            - eq: [status_code, 200]
    

    不知道你贴上来的用例是否完整,如果是,那你少了第一步的 get 请求(打开登录页面),所以导致没有生成 $X_CSRF_Token 变量。

  • 多用。

    同时简历里别写自己都好久没用的工具,被问倒反而变成扣分项了。

  • repeater 的主要特点是,针对写(post)操作,除了录制服务的流入流量,也可以录制服务的外部调用或者特定调用(如数据库查询、第三方服务调用等)。

    goreplay 看了下简介,没提及针对写操作的针对性适配,不确定是否也有类似能力。

  • 这块其实是工程化的部分了,并不复杂,所以暂时没有计划专门写文章分享这部分。建议可以自己探索学习下。

    repeater 是一个底层组件,还是需要不少探索改造才能在项目上实际使用的,建议要做好自己要额外开发一些配套东西的准备。

  • repeater-console 里没有对应方法,要用 repeater 里面序列化库的反序列化方法。

  • 从你前面配置步骤,没看出太大问题。但你的截图里总是有些像乱码一样的奇怪字符,不知道是不是你的系统默认字符集不大对。

    另外,有个很奇怪的点,你倒数第二个截图里面,repeat 请求返回的 data 值,没见到具体值是啥,展示不完整。

    然后最后的 callback 里用的 id 是必须用 repeat 返回的 data 里面带有的 id 的,因为它查询的是回放结果,直接用和请求 repeat 一样的 id 是不正确的。我刚刚也微调了下正文里的内容,强调一下这个点。

  • 不开源,基于 kityminder 做的。

    如果需求不复杂,可以试试直接用 kityminder (百度脑图) ,也带有在线保存管理功能的。

  • win10 质量事件思考 at 2019年10月23日

    个人觉得是产品策略变了,质量要求也跟着变了。

    既然产品策略改为了持续服务而非一锤子买卖,自然倾向于快速迭代而非每个版本完美。只是我们作为用户还是按以往的认知去要求它,会觉得不大爽。

  • 6 年前,我刚毕业,还是测试行业的一个新人
    5 年前,注册了社区,但也仅限于注册
    4 年前,开始在社区发帖分享 appium ,并有幸获邀加入社区核心团队,从此不再是井底之蛙
    3 年前,广州第一场社区沙龙举办,结识了一帮志同道合的好友
    2 年前,转型服务端,在社区逐渐潜水,偶有尝鲜分享
    1 年前,hmm,好像没发生什么特别的。但社区,已成为生活的一部分。

    感谢社区、感谢社区里的每一位同学。没有社区,没有今天的我。
    希望后面社区越走越远,越来越好,继续践行初心,推进国内测试技术的发展。

  • 把你的完整步骤(包括配置项怎么改、用的什么操作系统等)发下?信息太少,无法定位问题原因。

  • TTF 新增 2 个新项目! at 2019年10月18日

    可以先把你的项目提交到开源项目吗?先了解下项目情况。

    加入的话主要有一个点,就是确认会持续投入运营这个项目的开源活动,包括和 TTF 一起吸纳有兴趣的新人参与到项目中,整理 issue 任务及开发指引便于新人加入。 TTF 期望能有更多同学有机会参与到各个开源项目中。

  • 是的,当时反响挺不错,所以特别邀请了在深圳大会里分享给更多同学。

  • 对于会关联数据库数据或者 redis 缓存数据的接口(如读取并返回数据、插入/更新数据),如果数据不一致就会导致 diff 误报。想请教下实际项目实践中,怎么保障三个节点的数据一致性的?

  • 提示说了 hyper-v 组件有问题,建议从这个角度去排查下。

    另外,你标题里的问题这个得问下云服务厂商吧,他们才最清楚。你这个问题有点像 我的电脑上运行xx软件报错,是不是我电脑有问题? ,缺少上下文。我们连你用啥云服务厂商、windows 系统啥版本之类的基本信息都不知道,协助排查都做不到,解决建议更加无从谈起。

  • 不错,终于有一个比较全的配置说明文档了。点赞!

  • 如何模拟 http 响应 at 2019年10月16日

    感觉你需要的是一个可以定制返回值的 mock 服务?
    如果是,可以看看 easy mock 或者 yapi 里面的 mock 功能?

  • 仅楼主可见
  • 机器学习结果的准确率,应该都是先有一个人工确认过的正确集,然后和模型跑出来结果做比对吧。没有一个 100% 正确的集合,也无法知道模型跑出来对不对、准确率如何。

    这个正确集本身是训练数据的一环,这类数据有一些公共的数据集对应不同领域的(包含原始数据、人工确认过的 100% 正确集),可以去找下,拿一些合适的来直接使用。不过领域如果比较特殊,估计也不一定有这类公开的数据可用,毕竟这些收集这些数据成本是不低的。