自动化工具 开源项目 sosotest 自动化测试平台

Criss Wang for 贝壳找房 · 2019年08月19日 · 最后由 李文良 回复于 2020年08月17日 · 1309 次阅读

sosotest 自动化测试平台介绍

github 开源地址: https://github.com/LianjiaTech/sosotest
testerhome:https://testerhome.com/opensource_projects/sosotest
使用文档:https://github.com/truelovesdu/sosotest_docs
演示地址: http://test.sosotest.com 账户:test 密码:123456 (备案问题,暂时关闭,请自行部署使用)
** 请大家不要添加数据,只进行调试即可。仅作演示使用,如果垃圾居太多会考虑停掉服务。**
** 允许各种转载
平台采用了类似 postman 的 UI 设计,对测试小白来说,入门难度极低。
同时又有关键字模式、python 模式等,给用户又提供了强大的封装能力,让高阶用户能够更好的扩展功能。
一切都是平台化操作。

理论上,python3.6.5 能够做的事情,sosotest 都可以做到!

sosotest 自动化测试平台的功能:

1、http 接口、dubbo 接口的测试。(其他类型类型接口测试可通过二次开发支持)

2、支持多环境、多服务配置。

3、支持数据业务分离。

4、支持数据驱动。

5、支持 mock。

6、支持 CI。

7、支持自定义封装。

8、支持 mysql 数据库操作、redis 操作、mongo 操作、kafka 等。

9、分布式任务处理,可并发支持多任务。

sosotest 是一个简单易用且功能强大的自动化测试平台。

目前 sosotest 已经为贝壳找房提供了稳定的后端接口自动化服务,服务于贝壳找房的各个重要业务线,
为业务线后端自动化赋能,有效提高了后端接口自动化效率。

多服务、多环境、多模式支持

可以灵活的配置被测服务,配置测试环境和请求地址。

普通模式、关键字模式和 python 模式的多模式支持,适合不同能力的测试人员。

可自定义关键字、自定义 python 函数和类,实现更好的封装。

数据业务分离

全局变量、组合文本功能,实现了平台的数据与业务的分离。

数据驱动

python 模式支持接口级的数据驱动。

任务优先变量,实现了任务级的数据驱动。

HTTP/DUBBO 测试

支持 HTTP 接口测试。

支持 DUBBO 接口测试 (telnet invoke 方式)。

可结合 CI 工具完成 CI

提供了 invoke 接口和 CI 示例,能够跟 CI 工具结合进行持续集成。

多功能 HTTP MOCK 服务

提供了 mock 服务,支持 restful 规范的接口,支持使用 python 自定义流程,动态返回 mock 响应结果。

多种用例导入模式(postman 导入、日志导入)

http 支持 postman 导入,日志导入。

dubbo 支持日志导入。

多种录制方式(Chrome 扩展、报文生成、MOCK 代理)

http 支持多种录制方式。

Chrome 扩展,一键点击生成接口和业务流用例。

复制原始请求报文,一键生成接口用例。

设置 app 的 mock 代理,直接生成 mock 数据后,一键转为接口用例。

分布式异步执行任务,支持多任务高并发。

任务执行采用了 master-slave 的分布式方案,能够接入多个 slave 实现任务执行的高并发。

安装部署&使用文档

gitbook: sosotest_docs

联系我们

交流反馈 QQ 群:284333313

作者邮箱:wangjilianglong@163.com

           
       liyc_self@163.com

鸣谢

sosotest 测试平台是从 2017 年初开始做的一个项目,期间经历了各种改版,到贝壳找房后,又进行了更多的功能开发和完善,
尤其在贝壳找房期间开发的 python 模式,让平台功能更加完善,使得平台可以更好的服务于经验丰富的 pythoner。
在此向感谢一下在 sosotest 的成长过程中给予支持的各位领导和一起付出努力和做出贡献的各位同事。


首先感谢 sosotest 起步时给予大力支持的技术总监金梁,是您的支持才有了 sosotest 的诞生。


然后感谢销售易的技术总监杨松给予的大力支持,是您的支持,才有了 sosotest 的第二次改版,
从一个简陋的平台,到功能逐步完善,是您的强力推进落地,才有了平台在公司落地为研发团队赋能,
并且获得了公司创新大赛的第一名,如果不是因为一些特殊原因,应该还会跟您一起战斗。


再然后是在贝壳的 leader 何立春,为 sosotest 在贝壳找房的落地和推进提供了很大的帮助,
在贝壳找房期间也大力支持 sosotest 的开发工作,使得 sosotest 在贝壳期间再一次产生了质的飞跃,
任务分布式执行让平台能够承担更大的执行压力,
python 模式支持让平台能更好的封装,
以及其他一些主要能力例如 mock 服务等都是在贝壳期间开发完成的,
在贝壳让 sosotest 真正的完善,成为一个可使用的功能完善的产品。


接下来重点要感谢的是一起开发平台的小伙伴李亚超,从 sosotest 的第一行代码开始,我们共同探讨平台功能设计,探讨实现方案,哪怕我们已经不在一个公司了,依然一起对 sosotest 进行开发和维护,多少个周末我们一起合并代码,都是为了 sosotest 的每一次成长,感谢李亚超这两年对 sosotest 的贡献。

感谢参与开发后台管理的伙伴周雪娇,开发了 sosotest 的后台管理功能。

最后还要感谢一下对平台做出其他贡献的朋友和同事,

感谢李成龙开发的 sosotest 的 jenkins 的插件,让 jenkins 能够更方便的调度 sosotest 的任务执行。

感谢岳令为 sosotest 提供的 docker file,让 sosotest 的部署执行更加方便。
(由于一些特殊原因,未能合入本次开源)

感谢王蕾以及房源团队的小伙伴们一起对 sosotest_docs 进行完善。

感谢使用 sosotest 的各位同事在使用过程中的不断反馈,平台也是在大家的使用和反馈中不断完善的。

License

MIT

Copyright(c) 2017 Lianjia, Inc. All Rights Reserved

最佳回复
csyanyajun 回复

在根目录的 config.ini 中有个配置 releaseRoot = D:/all_github/sosotest
将 releaseRoot 的值设置为你的代码绝对路径即可。

csyanyajun 回复

看一下 python 的版本和 django 的版本是否是文档要求的。
sosotest 的版本兼容没有做处理,目前推荐的版本是:
python 3.6.5 或者 3.6.2,理论上 3.6.x 都可以。但是 3.7 不可以。
django 的版本推荐 1.11.8
其他版本的 python 和 django 不保证能顺利运行。

JonnySen 回复

自己引入 socket 相关的包,用 python 模式即可进行相关 socket 的测试。

共收到 37 条回复 时间 点赞

大佬牛批

牛批大佬抄哥

深度与业务结合

演示地址可有?或者操作手册?

徐汪成 回复

本篇文章中写有
安装部署&使用文档
https://github.com/truelovesdu/sosotest_docs

支持性能测试吗

JonnySen 回复

暂时不支持。后续有计划做并发测试,但是也不会是专业的性能测试。
因为平台涉及了功能测试的一些前后接口引用,数据初始化还原之类的能力,不太适合做性能测试。
性能测试建议用专业的性能测试工具。

徐汪成 回复

演示地址因为是自己的私有云服务器,效果很差,所以不对外开放了。
doc 的话在 https://github.com/truelovesdu/sosotest_docs 有详细介绍,文档在持续更新中。

平台采用了类似 postman 的 UI 设计,对测试小白来说,入门难度极低。
同时又有关键字模式、python 模式等,给用户又提供了强大的封装能力,让高阶用户能够更好的扩展功能。
一切都是平台化操作。

徐汪成 回复

演示地址: http://test.sosotest.com 账户:test 密码:123456

请大家不要添加数据,只进行调试即可。仅作演示使用,如果垃圾居太多会考虑停掉服务。

亚超大佬、吉亮大佬,👍

Criss Wang 回复

好的。谢谢。

近期看到过的非常出色的开源项目,推荐平台管理员设置为精华帖

周雪娇 回复

大佬回复的好

周雪娇 回复

惊了,雪娇大佬现身打 call

还想问下 支持 socket 测试吗😹

总监同意你开源了嘛

膜拜大佬

用了下,想法和功能实现都挺不错,UI 有点丑了,操作不太顺畅。

徐汪成 回复

批评的对,我们的前端确实是现学现卖,没有系统的前端知识,兼容性比较差。
推荐为 windows 系统、1080P 的屏幕、chrome 浏览器。
后续会考虑做 UI 更新和优化

仅楼主可见
北城yyds 回复

这个不太明白呢,建议你加入 qq 群,然后群里截图提问。

JonnySen 回复

想了一起是可以支持 websocket 的,首先服务器端下载安装 websocket-client 包,然后再后台配置引入对应的包,然后用 python 模式写对应的 websocket 测试代码即可。

hello ,对于同一个接口,空值、传参错误这种异常校验的用例 也是定义在接口层里吗 是否是一条用例一个接口呢

JonnySen 回复

可以使用数据驱动,也可以一个接口一个。这个自己可以随心配置。

大佬牛逼

Criss Wang · #27 · 2019年09月24日 Author
仅楼主可见
28楼 已删除

我把 mysql 和 redis 部署在腾讯云的服务器上,在本地进行远程连接调试,然后出现了这个问题,【 TCP_HOST = confDict[tcpKey]['host']--------KeyError: 'TCP-TEST01'】,不知道问题出现在什么地方,需要怎么操作

csyanyajun 回复

在根目录的 config.ini 中有个配置 releaseRoot = D:/all_github/sosotest
将 releaseRoot 的值设置为你的代码绝对路径即可。

在部署的时候,遇到了这个问题

csyanyajun 回复

看一下 python 的版本和 django 的版本是否是文档要求的。
sosotest 的版本兼容没有做处理,目前推荐的版本是:
python 3.6.5 或者 3.6.2,理论上 3.6.x 都可以。但是 3.7 不可以。
django 的版本推荐 1.11.8
其他版本的 python 和 django 不保证能顺利运行。

JonnySen 回复

自己引入 socket 相关的包,用 python 模式即可进行相关 socket 的测试。

部署完成后,点击【添加接口用例】的时候,包
是我什么地方没有调试好吗?

最近放假没事在家里看了下这个项目,平台实现的功能还是挺强大的,楼主的思路还是挺清晰的,就是后台代码看起来有点费劲,另外前端 UI 还需要优化一下哈😀 想继续研究一下,不知能能否应用到我司项目中去

lwjnicole 回复

感谢支持!
前端 UI 正在重构中,后台代码注释较少。因为开源的是一个平台而不是框架,用户不需要二次开发,只需要实现自定义关键字或者 python 函数即可,所以对于代码规范性以及注释都要求的不高。

csyanyajun 回复

这个应该是数据库配置的问题,你百度一下报错信息有解决方案,安装部署文档底部也有解决方案。

哈哈哈,大佬怎么这么多!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册