V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MuscleOf2016
V2EX  ›  程序员

有大佬介绍下自己公司自动化测试的使用情况吗?

  •  1
     
  •   MuscleOf2016 · 2018-10-30 16:34:52 +08:00 · 3583 次点击
    这是一个创建于 2221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近团队也在调研,想多方参考下。 希望可以介绍下框架,使用的情况,有什么缺点。 主要针对混合开发的 app 测试。

    23 条回复    2018-11-05 16:34:22 +08:00
    TommyLemon
        1
    TommyLemon  
       2018-10-30 16:57:22 +08:00   ❤️ 1
    TommyLemon
        2
    TommyLemon  
       2018-10-30 17:00:09 +08:00   ❤️ 1
    测试接口用的是 APIJSONAuto,原来是测试那边写 Python 脚本,现在都不用了。
    自动生成接口文档,清晰可读永远最新
    自动生成请求代码,支持 Android 和 iOS
    自动生成 JavaBean 文件,一键下载
    自动管理与测试接口用例,一键共享
    自动给请求 JSON 加注释,一键切换
    自动保存历史请求记录,一键恢复
    自动校验与格式化 JSON,支持高亮和收展

    缺点是部分情况下需要手动纠错。

    http://i.youku.com/apijson
    TommyLemon
        3
    TommyLemon  
       2018-10-30 17:04:43 +08:00
    @TommyLemon
    这个是我写的开源库,创作不易,GitHub 右上角点 Star 支持下吧,谢谢 ^_^
    https://github.com/TommyLemon/APIJSONAuto
    MuscleOf2016
        4
    MuscleOf2016  
    OP
       2018-10-30 17:11:14 +08:00
    @TommyLemon 你是自动化测试岗位吗
    TommyLemon
        5
    TommyLemon  
       2018-10-30 17:17:50 +08:00
    @MuscleOf2016 开发
    MuscleOf2016
        6
    MuscleOf2016  
    OP
       2018-10-30 18:08:36 +08:00
    @TommyLemon ok,已经 star 了。
    lusheldon
        7
    lusheldon  
       2018-10-30 18:12:56 +08:00 via Android
    @TommyLemon 老哥,请教一下你这个框架有没有校验接口业务逻辑(比如查数据库比对结果)呢,还有数据准备和清理怎么实施的呢?
    mikuazusa
        8
    mikuazusa  
       2018-10-30 18:21:40 +08:00   ❤️ 1
    APP 接口这块,用 hitchhiker,更轻量级的用 postman,更重量级的用 Robot Framework Ride
    APP UI、功能方面,用 monkey。
    TommyLemon
        9
    TommyLemon  
       2018-10-30 18:45:22 +08:00   ❤️ 1
    @lusheldon 有的,但不是查数据库,而是自动根据上一次的正确结果来对比。
    数据准备 不需要写任何代码,不需要 Mock,直接通过你上传的接口来获取。
    数据清理 不属于接口工具的功能,这是你们自己的业务,可以写脚本或用专门的工具。

    这是用 APIJSONAuto (前端) 和 APIJSON (后端) 做的接口管理平台,
    额外提供机器学习测试,目前线上环境还有 bug 暂时不能用这个功能,可以用接口托管等其它所有功能。
    apijson.org
    MuscleOf2016
        10
    MuscleOf2016  
    OP
       2018-10-30 19:30:28 +08:00
    大佬们
    lusheldon
        11
    lusheldon  
       2018-10-30 20:56:49 +08:00 via Android
    @TommyLemon 我一定是被降权了,都收不到提醒的。过几天研究一下您这个框架。不过我们做的测试都是要查数据库甚至要经过很多逻辑计算的,可能也不太适用。
    connection
        12
    connection  
       2018-10-30 21:03:44 +08:00
    @TommyLemon 这个是针对接口级的自动化吧?
    MuscleOf2016
        13
    MuscleOf2016  
    OP
       2018-10-30 21:15:04 +08:00
    @lusheldon 今天回复提醒我也没收到。
    mikuazusa
        14
    mikuazusa  
       2018-10-30 21:58:00 +08:00
    @lusheldon 多少逻辑计算都没问题,只要你预设了结果,用例进行断言就能回归自动化测试了。
    MuscleOf2016
        15
    MuscleOf2016  
    OP
       2018-10-31 08:21:55 +08:00
    再顶下。
    TommyLemon
        16
    TommyLemon  
       2018-10-31 09:35:03 +08:00
    @lusheldon 这位兄弟 @mikuazusa 理解到位,APIJSONAuto 是用结果来对比的,不用管过程怎么样。
    而且预设结果只需要点一下回归测试按钮,然后点击 [这是对的] 按钮,就生成 /更新 了对比标准。
    也不需要像其他工具一样要写代码来断言。
    可以试试
    http://apijson.org/
    TommyLemon
        17
    TommyLemon  
       2018-10-31 09:36:23 +08:00
    @connection 对的,自动请求所有接口,然后自动对比每个接口返回的结果,不需要写任何代码
    MuscleOf2016
        18
    MuscleOf2016  
    OP
       2018-10-31 10:19:58 +08:00
    @TommyLemon 其实可以理解为已知返回数据的大致格式,通过固定参数去请求,工具来比对已知返回数据格式和实际返回数据,一致说明测试通过。
    TommyLemon
        19
    TommyLemon  
       2018-10-31 10:36:57 +08:00
    @MuscleOf2016 部分正确。
    它是调用接口拿到真实的结果,然后和最近的正确的真实结果来对比。

    不过 机器学习测试 和 普通测试 有点不一样,它会对正确结果抽取一个模型,里面描述了 类型、值的范围、长度范围 等属性,
    不论是
    有问题的 值 所在路径(例如 list/0/User/name, User/contactIdList/1 ),
    还是对比结论(状态码改变、缺少字段、新增字段、值超出范围、值类型改变)
    都更精准,容错性也更好。
    而且每次纠错后都会学习新的正确结果,然后更新原来的标准,数据越多模型越理想。
    Yarnus
        20
    Yarnus  
       2018-10-31 13:48:09 +08:00
    刚好需要 先马了
    MuscleOf2016
        21
    MuscleOf2016  
    OP
       2018-10-31 14:46:54 +08:00
    @TommyLemon 谢谢解答,刚没看到这边用机器学习去对比结果的。
    TommyLemon
        22
    TommyLemon  
       2018-10-31 15:25:56 +08:00
    @MuscleOf2016 机器学习代码用 js 写的,然后 java (用的是 SpringBoot 框架) 调用。
    现在有个问题,IDE 调试还是正常的,打包成 jar 后,java 读取不到 js 文件
    https://www.oschina.net/question/3739440_2273949

    试过 getInputStream,pom 配置 resource 等 10 多种组合方式都不行,
    大家有什么解决方法吗?
    TommyLemon
        23
    TommyLemon  
       2018-11-05 16:34:22 +08:00
    @MuscleOf2016 @mikuazusa
    已解决,现在可以用机器学习测试了:
    1.点击右区域 第 3 个图标按钮(本地保存,点击查看共享),会进入测试用例界面
    2.点击 切换机器学习的按钮(机器学习:已关闭),会开启机器学习
    3.点击左区域 最右侧的图标按钮(回归测试)
    http://apijson.org/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2569 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.