sosotest自动化测试平台

MIT
python
linux/mac/windows
Criss Wang · August 19, 2019 · 23438 次阅读 · 21 条评论

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 的 jenkins 的插件,让 jenkins 能够更方便的调度 sosotest 的任务执行。

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

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

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

License

MIT

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

评论列表
xiaolei 发表于 March 04, 2023

大佬,想问一下添加接口用例时使用 python 模式为啥会报这个错啊
报错信息:
Traceback (most recent call last):
File "/home/sosotest/sosotest-master/AutotestFramework/core/processor/BP.py", line 163, in process_python_code
exec(context.get_python_mode_buildIn_functions(), context.varsPool)
File "", line 11, in
ModuleNotFoundError: No module named 'faker'

so? 发表于 February 25, 2023

大佬 redis 怎么配的啊,配置了,老之后,添加接口报找不到 redis 的 key

tester1.0 发表于 November 10, 2022

111111

Criss Wang 发表于 September 22, 2021

请问如何扩展 TCP 协议?

使用 python 模式,封装对应的解析即可。

Criss Wang 发表于 September 22, 2021

有开源地址吗?

有的,https://github.com/lianjiaTech/sosotest

aspstar 发表于 April 20, 2021

请问如何扩展 TCP 协议?

Criss Wang 发表于 April 20, 2021

有开源地址吗?
已开源到 github @stephen

Criss Wang 发表于 April 20, 2021

大佬,你好!我有几个问题想请教下:

我想问下关于 “断言恢复” 到底是什么意思,“断言恢复” 包含了后置处理吗? 2.为什么这么设计? 3.我感觉对于接口加密这块的验证,解密之后在 “断言恢复” 中也不能使用平台提供的类似断言结构,断言包含这些功能吧?

答:
可以解密后,再使用结构断言。
断言和恢复放到一起是给用户更大的自由,有的测试需要断言后再恢复数据,有的可能只需要断言不需要数据恢复。可以通过关键字自行封装自己想要的操作。
其实一个 case 就是 3 部分,前置 执行 后置,前置 soso 上叫做准备,后置就是断言和恢复。

心意已决 发表于 November 25, 2020

1234

stephen 发表于 November 23, 2020

有开源地址吗?

M7zhou 发表于 October 23, 2020

大佬,你好!我有几个问题想请教下:

  1. 我想问下关于 “断言恢复” 到底是什么意思,“断言恢复” 包含了后置处理吗? 2.为什么这么设计? 3.我感觉对于接口加密这块的验证,解密之后在 “断言恢复” 中也不能使用平台提供的类似断言结构,断言包含这些功能吧?
Criss Wang 发表于 October 22, 2020

大佬,任务执行的报告里能加入执行的详细信息吗,像请求和应答信息,不然出错了都不好定位问题

这个是有的兄弟。报告的左上角有详情切换。

hellodjc11 发表于 July 01, 2020

大佬,任务执行的报告里能加入执行的详细信息吗,像请求和应答信息,不然出错了都不好定位问题

WhalenMarting 发表于 January 08, 2020

厉害了大佬,刚部署完成,正在摸索中

大虫 发表于 October 24, 2019

本框架体验了一遍,作者的接口自动化思路还是很清晰的,框架功能也比较完善,应该算是 比较好的一款开源项目,完爆本论坛大多数开源项目,继续加油

soapduke 发表于 September 09, 2019

mark

ata360 发表于 September 05, 2019

就不能把配置文件改好么,  你看这问题多尴尬
File "/root/apiTest/sosotest/AutotestWebD/AutotestWebD/settings.py", line 138, in
TCP_HOST = confDict[tcpKey]['host']
KeyError: 'TCP-TEST01'

leayn 发表于 August 28, 2019

N 楼

soim 发表于 August 28, 2019

二楼

搭八 发表于 August 28, 2019

一楼

Criss Wang 发表于 September 05, 2019

@ata360
这个需要你自己把自己的正确目录写正确,不然就会报错,每个人要把代码部署到哪里是不确定,所以要在配置文件中指定自己的目录。