• 你在用 pytest 框架 写 自己的 业务测试用例,并且 对 selenium 的 API 做了简单的封装,并使用了 PO 设计模式。

    框架设计 被用烂了,作为公开框架,应该具备:

    1. 框架提供独立的安装,pip 安装 或 exe 安装程序,或别的独立的安装程序。至少应该和业务代码剥离吧!

    2. 框架的版本号,有版本号才能更好的迭代和维护。

    3. 框架的 API 和 文档,如果是给别人用的话。

    -- 无意冒犯,只是更正一下业务代码的设计框架设计 的区别。

  • @ 不声不响 这里不讨论 quick 平台的功能,他仅用于学习,很多功能没有,也不稳定,可以社区的其他接口测试平台。

    备注:关于测试平台,我们有一些新的想法,可以留意这个项目:https://github.com/SeldomQA/seldom-platform

  • 我们测试平台做了三版,我之前有文章做过介绍,第三版类似于 httprunner 的 web 版,http://testerhome.com/topics/20084

    今年重新用回框架,我们公司的接口自动化流程比较长也挺复杂的,例如 获取一些 token 信息(不仅仅登录),用到一些数据加密,需要通过秘钥链接查询数据库。UI(web 界面的功能)不能完全满足需求,为此用 python 写了大量的函数(类似 httprunner 中的 debugtalk.py 文件作用),在用例执行的过程中调用。当然,这些东西都可以 web 设计到系统了。但总之,开发平台的人力不足,业务测试团队又觉得难用,所以,使用率一直不高。

    另一个很重要的诉求,测试人员自己需要成长空间。他们更愿意通过框架更加灵活的编写测试用例,也更能从编程中得到技术提升,从而带来一些成就感。改用框架之后,积极性都高了很多。

    seldom 有强大的参数化(@data()/@data_file())功能,其实可以很大限度降低编写重复的代码。所以,对于熟悉编程的同学,编写接口自动化的效率是高于通过平台去创建用例的。

    当然,我们也并未完全抛弃平台,平台的主要作用是拉取项目代码 在远端执行,并解析报告在平台上展示。也可以通过平台执行测试。

    总之,这是一个目前双方都接受的方案

    1. 测试人员可以开心的写自动化用例。
    2. 测试 leader 可以通过平台看到他想要的数据。

    这肯定不适用于所有公司、所有团队。

    1. seldom 2.10.0 发布,同步用法更新到了 https://github.com/defnngj/seldom-api-testing 新项目

    2. seldom 不是一个开源之后不管的项目。近三年发布的版本:
      https://pypi.org/project/seldom/#history

    3. 越来越多公司的测试在用,问题和 bug 的处理速度很及时。也有其他其他开发参与到了项目中,当然希望更多人加入。

    谢谢关注和使用这个框架的同学。

  • @kingTester 先跑到我的 poium 下面评论 这不是 page object ,搞笑(欢迎给我科普一下什么才是 page objects )。 然后,又跑到这里 恶意 评论。 seldomQA 相关项目都是开源的,哪里得出的结论 需要报培训班才能用一说?

  • 你想太多了, 压根不需要考虑异常捕捉,不然干嘛用 unittest 单元测试框架。自己直接写代码做测试不就好了。

    之所以用测试框架,说明这些事情都框架都给我们做了。当用例错误/失败,框架自动抛出异常,并且不影响下一条用例的执行。 并且最终帮你统计成功/失败/错误的用例数。 自己写异常捕捉没啥意义。

    如果是想在用例失败的时候截图,那么需要 和 测试报告结合,不然截图放某个目录下面也好找和用例的对应关系。

    推荐 XTestRunner,自动截图:https://github.com/SeldomQA/XTestRunner/blob/master/docs/test_type.md

  • @ 李健彬 首先,确保 seldom 大于 2.4.2 版本,否则,不支持列表嵌套 字典。

    • json
    {
    "release": [
        {
            "pageId":18,
            "pageVersion":4
        }
     ]
    }
    
    • seldom
    @file_data('data.json',key='release')
    def test_aab(pageId, pageVersion)
        pass
    

    备注: 参数中的 pageIdpageVersion 并不需要和 json 中的名字对应,但参数顺序有严格要求。

    你也可以写成下面这样:

    @file_data('data.json',key='release')
    def test_aab(pId, pVersion)
        pass
    
  • @wiggins 去项目下面提问哈! 给出详细的例子和错误描述:https://github.com/SeldomQA/seldom/issues

  • 接口测试用例代码 非常模板化,我的意思是只要了解接口(HTTP)的规则,手写 和 生成其实没有区别。1. 手写就是复制、粘贴改。 2、用工具生成,抓包或 浏览器工具 复制 curl 转代码。 难度上:都没有难度,效率上:都差不多。

    当然,如果你说的是自动录制回放的,那是另外一条玩法了。