接口测试用例代码 非常模板化,我的意思是只要了解接口(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 这篇分享是在前端开发过程中的实践,所以,当然是自己加的,所以,大部分元素定位都很简单,而且很可靠。
1、单接口测试,通过 mock 平台,消除接口之间的依赖,针对每个接口进行测试,当然这需要开发配合对接口的调用做做一些调整。
2、接口场景测试,就如你上面说的 A 接口-->B 接口 --> C 接口 .... 有时候接口的场景构造更复杂,通过 UI 自动化反倒简单一些,可以通过 UI 自动化覆盖这种场景。
seldom 的 assertPath
断言基于 jmespath 库 ,用法也很强大。https://jmespath.org/specification.html
正是我文章开头提到的第一点,测试数据问题,这会直接影响接口自动化测试的稳定性。这个问题选择忽略,接口自动化失败是无法断定是 数据导致的,还是真发现了 bug。
一般的做法:
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 人,前段时间有转岗开发的,有离职的,现在人力严重不足。
需求很充足
我们不是为了 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 报告好看。
不知所云,前后矛盾,有感而发。