可以看一下这个系列视频,fixture 讲的比较清楚了:
每种语言都有覆盖率统计工具。 主要看被统计的是什么语言开发的项目:
覆盖率统计工具一般是需要在代码中插装的,不同语言插装方式,甚至统计方式也会有差异。 不存在一个工具可以做到所有语言的覆盖率统计。
如果有也一定要提供 相应语言的 插件。 类似 allure 的思路,之所以做到 不同语言、单元测试框架的支持,需要对不同的语言开发 相应的插件,使他们生成统一的测试结果的数据格式,然后,由 allure 解析展示。 --- 我这里 扯远了 。
针对主流的 API 测试工具做的深度对比。如果你们需要调研 API 工具看这份报告就够了。这些工具都是当前比较优秀的 API 自动化工具。表格中的对比维度非常多(几十个维度吧)。没有哪个工具有全面的绝对的优势,每个公司和团队的需求不同,请根据自身团队选择。
什么利益链条? 我帮你说了,在线培训,这个是见不得光的 违法行为
吗? 你可以认为是 没有技术含量
和 割韭菜
。那你怎么不 打击 各种幼儿培训。一个幼儿英语收费 几万,不更是 没有技术含量
和 割韭菜
?
之所以 认为是 年轻人
, 是我主观认为 年轻人 才有可能 会年轻气盛,看不上我们这些工作了 10 几年的 老人
。如果同为工作多年的老人,不是应该惺惺相惜吗?在这个大环境不好的情况下,很多人找不到工作的情况下。 为什么别人辞个职就会引来嘲讽?
最后,我跟 狂师 也没有任何 利益 关系,唯一的 交流时 帮 RF 写过推荐,他赠送了一本 RF 的书。此外,我早不开线上培训。你可以继续恶意
猜测,我们还有什么利益链条?
@ 小黑子
关注的有 狂师 的公众号,很少有 RF 的分享,更多的 python 相关的框架和技术。 至少 说明 他的技术不局限于 RF,为什么会觉得 这辈子 只能靠 “RF” 这个技术过活了?
其次,你提到了 AI 跟他的行业没关系。那么你一定是从事 AI 相关行业的 开发和 测试? 如果是的话,恭喜你,站在了这个赛道上,希望你走的更远。 如果不是的话,在面对 AI 相关技术的学习速度上,我更相信作者学的更快,长期保持学习和分享的人可能学的更快,除非是遇到特别高维度的知识和技术
。 你在傲娇什么?你更年轻所以学的更快吗?
最后,不太可能能回到原来的薪资水平
, 马云/ 王健林
的 资产缩水严重,赶紧去嘲讽他们,他们不太可能回到 首富
的位置了,影响他们座私人飞机了吗?
最后,我不觉得辞职是勇气
,就是人在不同的环境和阶段,做出了自己想要的选择。对的也好,错的也罢!自己承担这个结果。只不过,这个时代包容性太差了,潜台词是 你拿着那么高的工资,怎么敢辞职?
不允许人有除了 钱
之外的任何追求。
本来打字说原因,后来发现写过一篇文章。直接贴给你。https://mp.weixin.qq.com/s/x9r9ryNu4Ha30lJkWWSavA
seldom 官网也有 seldom vs pytest 对比:https://seldomqa.github.io/introduce.html
docker-selenium 提供了 selenium 的运行环境(包含浏览器和驱动): https://github.com/SeleniumHQ/docker-selenium
至于 selenium 脚本,因为这个脚本时长需要改动,想不到放 docker 的目的; 更应该考虑 集成 CI 吧~!
seldom 应该是非常适合你的!
同样基于 unittest 单元测试框架, 对于你来说几乎无成本。
接口测试非常需要数据驱动,seldom 提供的数据驱动:支持 class_data()
装饰类、data()
装饰用例, file_data()
支持 json\yaml\excel\csv 文件。 api_data()
支持接口数据,甚至数据驱动文件可以做环境区分。
https://seldomqa.github.io/getting-started/data_driver.html
集成 XTestRunner 定时化报告,美观不输 allure(unittest 也可以直接使用 XTestRunner)
https://github.com/SeldomQA/XTestRunner
楼上提到平台化,seldom-platfrom 可以将 seldom 自动化代码解析映射到 Web 平台上,
看不出它的优势在哪里?
结合了框架和平台各自的优势: 用框架
写用例,我认为是优势; 用平台
展示用例,执行用例是优势。(相反,尝试用平台
写用例,解决复杂的用例更复杂,我不认为是优势。)
省了哪方面的时间?
这套方案,相比其他自动化方案 可能没有什么节省时间上的优势;
谁是你的目标用户?
需要做自动化的测试团队。
懂代码的还是不懂代码的?
必须懂代码啊~!不懂代码咋写用例?
我来简单介绍一下背景:
接口测试平台我们做了三版,文章有介绍过:https://testerhome.com/topics/20084
对于我们公司的业务测试来说都不算好用,虽然第三版比较强大,但编写复杂的场景测试,需要借助辅助功能写很多 py 函数(类似 httprunner 的 debugtalk.py 文件里实现函数)
那既然用平台还不是要写代码,为什么不全部写代码? 于是,全部业务测试开始使用 seldom 框架编写用例。使用 gitlab 管理 接口自动化项目。 我们公司的业务测试是乐于接受这个方案的,面试的时候就考察了编程能力。 --- 你本地使用 pytest/unittest 写自动化,难道不会 debug 吗?
业务测试人员用 seldom 框架写自己负责模块的用例, 不受制于平台的功能限制(代码可以随意安装扩展库)--- 这对我们来说就是优势。 这也是框架
本来的优势。
你们可能又想,我们写好了代码 集成 jenkins 上面不一样可以 自动/定时触发执行,生成结果。
那 seldom-platform 平台的优势可以自动解析和展示每一条用例。统计历史执行结果; 我们公司基于 seldom-platform 的思路做了 产线拨测 系统; 那用例需要审核, 创建任务的时候可以选择 test_a.py 文件的一条用例 和 test_b.py 文件的一条用例... 这种管理用例的粒度,jenkins 估计做不到吧? --- 这不是刚好发挥出了 平台
应该的优势吗?
适合自己团队的就是最好的。
另外再说一下:
seldom-platform/seldom 解决的不不单纯是接口自动化问题;可能文章大量提到了接口案例,误以为就是为了解决接口问题的;seldom 支持 web/app UI、接口,写什么用例都可以;多复杂的场景都可以;这个框架的优势; 并不影响 seldom-platform 对用例的解析和展示。 --- 这是一整套 自动化的解决方案。
你只看我抛出的问题,没看看 seldom-platform/seldom 方案? 你说提到的问题是 seldom 框架中实现的,怎么实现取决于你的业务和方案; seldom-platform 只是用于展示、解析、和执行用例,并不限制你用例如何写。
首先,感谢 @taylortaurus 发帖:
我来补充几点说明:
虽然图中的截图是 接口自动化项目。但理论上通过 seldom 编写的各种类型的测试都是支持的, Web/App UI 自动化测试也可以; 不过 App 测试环境相对复杂,比如 后端需要 启动 appium server 。
图中解析用例 不是单纯的 把目录下的文件/类/方法
解析出来,一个项目中 有各种.py
文件,比如 common/utils
放的公共模块, 甚至在测试类中也有 普通的 不以 test
开头的方法, seldom 可以做到只解析测试用例
。
用例解析不依赖 seldom-platform
,这是 seldom 框架的能力; 比如,我们公司 后端用 go 调用 seldom
命令来解析和执行用例。
seldom-platform
是开源项目,有些人参与了走了,有些人贡献了想法,有些人贡献了代码,非常希望更多人参与贡献想法和代码; 你看不上 UI 可以自己 fork 分支,重写 前端/ 后端都是可以的。
好的轮子是需要时间打磨的。引用前两天在知乎看到的观点;
你想造一个满足 特定 项目 的特定场景轮子很简单;
你想造一个满足所有项目的特定场景的轮子有点难。
你想造一个满足所有项目的所有场景的轮子就很难了。
拿我自己维护的 seldom 框架为例:框架封装了 MySQL 数据库的调用,本来我们公司只用 MySQL,甚至我待过的公司都用的 MySQL, 但是,有人 就要 用 Mongdb,还有人要用 SQL Server...
随便造个轮子自己用用无所谓;如果想开源,想给所有人用,那么就要做好长期投入的准备。
社区里大部分项目都是开源三分钟热度的那种!seldom 敢说不是,虽然 不完美,有一些天生缺陷;但一直在迭代;已经满足了自动化测试的大部分需求;
与其自己造轮子,不如参与到一个轮子的开发中。
SeldomQA 包括框架和平台,是自动化测试的一整套解决方案(今年已经在我们公司落地)。
https://github.com/SeldomQA
希望更多人参与进来~!我会毫无保留的和你们交流 经验 和 设计思想。
第 1 个问题可以参考这篇文章:https://www.cnblogs.com/fnng/p/15554203.html
你在用 pytest 框架 写 自己的 业务测试用例,并且 对 selenium 的 API 做了简单的封装,并使用了 PO 设计模式。
框架设计
被用烂了,作为公开框架,应该具备:
框架提供独立的安装,pip
安装 或 exe
安装程序,或别的独立的安装程序。至少应该和业务代码剥离吧!
框架的版本号,有版本号才能更好的迭代和维护。
框架的 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()
)功能,其实可以很大限度降低编写重复的代码。所以,对于熟悉编程的同学,编写接口自动化的效率是高于通过平台去创建用例的。
当然,我们也并未完全抛弃平台,平台的主要作用是拉取项目代码 在远端执行,并解析报告在平台上展示。也可以通过平台执行测试。
总之,这是一个目前双方都接受的方案
这肯定不适用于所有公司、所有团队。
seldom 2.10.0 发布,同步用法更新到了 https://github.com/defnngj/seldom-api-testing 新项目
seldom 不是一个开源之后不管的项目。近三年发布的版本:
https://pypi.org/project/seldom/#history
越来越多公司的测试在用,问题和 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
版本,否则,不支持列表嵌套 字典。
{
"release": [
{
"pageId":18,
"pageVersion":4
}
]
}
@file_data('data.json',key='release')
def test_aab(pageId, pageVersion):
pass
备注: 参数中的 pageId
、pageVersion
并不需要和 json 中的名字对应,但参数顺序有严格要求。
你也可以写成下面这样:
@file_data('data.json',key='release')
def test_aab(pId, pVersion):
pass
@A_延林 seldom 2.4.0
支持了打标签功能, 参考文档: https://github.com/SeldomQA/seldom/blob/master/docs/advanced.md#%E7%94%A8%E4%BE%8B%E5%88%86%E7%B1%BB%E6%A0%87%E7%AD%BE
@wiggins 去项目下面提问哈! 给出详细的例子和错误描述:https://github.com/SeldomQA/seldom/issues
接口测试用例代码 非常模板化,我的意思是只要了解接口(HTTP)的规则,手写 和 生成其实没有区别。1. 手写就是复制、粘贴改。 2、用工具生成,抓包或 浏览器工具 复制 curl 转代码。 难度上:都没有难度,效率上:都差不多。
当然,如果你说的是自动录制回放的,那是另外一条玩法了。