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

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

  • 项目配的有文档:https://github.com/SeldomQA/seldom/tree/master/docs , 打标机制是什么?可能不支持。

  • 打包上传 pypi 漏掉了,.whl 文件, 已经在2.2.4 版本修复。

    有问题去项目下面提问,更及时得到反馈。
    https://github.com/SeldomQA/seldom/issues

    中秋节快乐!

  • @Thirty-Thirty 我之前的那篇文章以及下面的讨论,已经比较充分的说明了我的观点,个人更倾向于 每层做每层的事情。 如果不按照自动化分层的思想来,我可以在跑 UI 自动化的时候去验证数据库。 或者跑 UI 的时候,启动一个服务监听抓包,顺便也把接口给测试了,行不行?当然可以!这只是手段,目的是保证质量,发现 bug。

    我之前的场景是接口用例后置,就是接口提测之后,边写接口自动化用例边测试,这个过程中会读接口代码逻辑 + 验证数据库,但是自动化用例里面没有操作验证数据库的逻辑。 后续就可以愉快的跑接口自动化了,每次迭代新增接口自动化用例。从经验来来,接口自动化失败一般是接口删除、修改导致。几乎没有遇到过,接口告诉我成功了,但是压根就没有更新数据这种低级错误。 如果我遇到这种问题,我会把他扼杀在我编写接口用例阶段。

    最后,我认为单元测试更适合验证数据库。已 django 框架为例:
    https://docs.djangoproject.com/en/3.2/topics/testing/overview/

    最后,上面引用微信接口的例子确实不当。

  • 支持标准的 pip 安装:

    pip install seldom
    

    setup.py 有引用 description.rst 文件, 项目中两个文件都是存在。

  • @ 文若 感谢,已修复!

  • @WangYuan 这篇分享是在前端开发过程中的实践,所以,当然是自己加的,所以,大部分元素定位都很简单,而且很可靠。

  • @reviewtiger

    1、单接口测试,通过 mock 平台,消除接口之间的依赖,针对每个接口进行测试,当然这需要开发配合对接口的调用做做一些调整。
    2、接口场景测试,就如你上面说的 A 接口-->B 接口 --> C 接口 .... 有时候接口的场景构造更复杂,通过 UI 自动化反倒简单一些,可以通过 UI 自动化覆盖这种场景。

  • seldom 的 assertPath 断言基于 jmespath 库 ,用法也很强大。https://jmespath.org/specification.html

  • 正是我文章开头提到的第一点,测试数据问题,这会直接影响接口自动化测试的稳定性。这个问题选择忽略,接口自动化失败是无法断定是 数据导致的,还是真发现了 bug。
    一般的做法:

    1. 写个 sql 脚本,在跑自动化之前,初始化数据库。
    2. 调用别的接口还原数据,比如,调用删除接口之前,先调用 添加接口。
    3. 数据银行(我面试时一个应聘者的叫法),其实就是建立一个系统来完成一些测试数据的生成。 ....

    seldom 集成了数据操作的目的也会为了解决这个问题,方便的链接数据库去构造一些测试数据。当然,这也仅限于中小规模的系统,以及测试人员对接口涉及到的表接口足够熟悉。

  • 既然是开源的框架,要解决是一些通用性的问题(断言、报告、参数化), 比如接口的加密,那不同公司的加密规则肯定是不一样的,就需要根据情况自己去封装。

    开源首先对自己是有意义的,如何维护到一个开源项目。

    如果的开源项目刚好也解决了别人的问题,肯定对别人也是由意义的。

  • @ 薄荷可乐 可以发简历过来哈~!

  • @ 薄荷可乐 我们不限制语言,我们全链路压测平台后端用的 java(spring),也有项目用到 go(gin)框架,其实,核心是懂 web API 开发; 就算我们只用 java,但如果你只是会用 java(seldnium /okhttp)写写 UI/接口自动化也是不够的。

  • @ 残枫 只有一个团队主要用 python,还有就是我们测试开发这边。 这个框架一开始是基于 tornado 做的二次开发,集成了一些公司用到的服务,最新版本已移除了 tornado 的依赖。 最近看了一下 fastapi ,在前后端分离的大方向下,python 可以专注做好后端 api 的开发,在保持简洁上尽量 提升性能,fastapi 就是这样的定位。 我们公司的 web 框架和 fastapi 的定位差不多。

  • @ 迷惘 默认是香港繁体,还有一个 https://www.klook.cn ,默认是简体中文。

  • @ 秦岭
    发出来之后,好怕被吐槽~!(或认为我在装 X,或者觉得我们应该去招个正经的开发来完成这些工作)

    我来解答你的疑问哈!

    目前公司整个 测试团队规模 50 人左右(小公司),测试开发不到 10 人,前段时间有转岗开发的,有离职的,现在人力严重不足。

    需求很充足

    1. Orion 平台 就是很复杂的项目,我们对标 pingcode.com ,甚至功能更多; 经过三年的迭代居然有好多技术债,没有人力去偿还。
    2. 全链路压测平台 是最近几个月重难点开发的一个项目,解决测试团队的产线压测需求。
    3. 现在公司从企微迁移到 lark, 所以还有不少 lark 的需求。
    4. 年初还规划一些系统,由于没有人,暂时都搁置了。

    我们不是为了 KPI 在做需求,拿 orion 平台为例,不用 orIon 平台,不管是产品、开发、测试,不用的话工作基本无法开展。当然,如果有问题,分分钟就有人找过来了。

    当然,我们也做废了很多功能,有些功能上线了不好用,逐渐就没人用了,这对我们这边的体验要求也蛮高的。

    对了,我们后端现在用的是公司自己开发的 web 框架,蛮有意思的,支持异步,性能比 django/flask 这些老的框架好不少。

  • 不是错误,只是 info 信息,没有定义元素描述。

    示例:

    from poium import Page, NewPageElement
    
    
    class BaiduIndexPage(Page):
        search_input = NewPageElement(name='wd', index=0, describe="百度输入框", timeout=5)
        search_button = NewPageElement(id_='su', index=0, describe="百度搜索按钮", timeout=5)
    
  • 目前研发中心只有深圳。

  • 从小.... 年轻人不讲武德,欺负我 69 岁老同志。耗子尾汁!

  • 快来投简历~!

  • 更新进度~! 已经陆续收到了 10 份左右的简历,公司流程有点忙。一般 1~2 周内会有电话预约,没有预约说明不合适,你们再看看其他机会。谢谢大家!

  • 仅楼主可见
  • 仅楼主可见
  • 不经常逛 testerhome。

    如果框架都无法实现,工具和平台就更不能。

    我来解释一下:

    • 框架

    我这里说的框架是代码框架,像 django、spring 这些 web 框架,本质上提供的给你的还是类方法,让你去使用和扩展,你可以用,可以只用一点,也可以自己灵活的实现。所以,我觉得没有什么是代码解决不了的。

    • 工具

    我当然 知道,postman 可以用 js 写扩展,我也知道 robot framework 可以自己封装 系统关键字,我更知道 httpRunner 可以在 debugtalk.py 自己封装函数。JMeter 也是可以用 Java 做扩展的。

    • 平台

    我自己做过专职平台开发,当然也知道平台也代码开发的,有啥功能不能做?

    可以问题是,我都用你的工具和平台去写代码了,说明你的工具和平台需要有代码基础的人才能用的顺手,为啥不能更加舒服高效的直接用代码解决问题?

    我的大部分观点,只是站在测试新手这边,鼓励大家写代码,多用框架这些工具,多了解一些底层的东西,写代码更加自由,更加灵活。

    而站在那些已经 已经跨过了新手阶段的,专职测试开发,测试 Leader,公司高层,现成的工具不香?我们做的平台不香? 有需求你提,我给你加!我理解,平台更好的衡量产出,可以做到更多维度的统计。 这些都是代码框架不具备的。

    可惜,新手看到的只是你这个报告挺好看的,我去学些。这也是为什么HTMLTestRunner 报告被定制了 N 多个版本, 去用 pytest 只是因为 allure 报告好看。

    不知所云,前后矛盾,有感而发。