一、项目背景 因公司项目包含服务器(tomcat、redis、dubbox、zookeeper)和客户端(android/ios/macos/windows),在测试中会使用Java/C++/OC/多种语言进行开发,增加了测试人员的技术要求,也增加了公司的成本,需要一款使用单一语言支持测试用例开发的框架,但开源框架中没有找到能够支撑以上需求的测试框架,所以参照webdriver的模式开发了适应公司项目的基于微服务的分布式自动化测试平台。 二、测试方向 1、服务器端 1)功能测试 a)服务器单独模块插桩测试 能Mock被测模块的上下游依赖模块,控制数据输入和检查数据输出。 b)服务器模块间测试 Mock客户端协议用以驱动服务器运行,控制数据输入和检查数据输出。 2)性能测试 a)单独模块性能 复用功能测试模块插桩夹具,对单独模块加压。 b)整体性能 locust 或Jmeter 2、客户端 1)API功能测试 提供Platform cross运行能力。 2)UI功能测试 Appnium或ATX 3)性能测试
三、框架要求 1、测试执行可横向扩展 2、测试资源动态分配(测试资源主动注册) 3、客户端测试库有platform cross能力,测试用例不依赖于客户端 4、测试用例统一开发语言(Python) 5、接口测试覆盖率动态可控(Pair) 6、测试数据与测试用例分离 7、框架控制命令无平台依赖性(json) 8、支持服务器间,客户端与服务器间的协议测试(Rest/Websocket/etc..) 9、支持CI/CD
四、架构图
|