1. 背景介绍
当前项目是Web应用,采用的是前后台分离的设计思想。后台通过RESTful API对外提供服务。因此在测试的时候,也需要同时对前台页面和后台API进行独立测试。考虑到大量的API测试和页面功能测试,因此不可避免地需要进行自动化以加快项目的回归测试时间,减少人的工作量。
2. 测试目的
3. 方案设计
3.1 技术选型
由于我们在Robot Framework (RF)框架上有一些技术积累,因此在自动化框架选型上,我们选择RF作为自动化测试的核心底层框架。持续集成平台我们选择最流行的Jenkins来作为持续集成与调度平台。
同时,我们也选择postman的命令行工具newman, jmeter等作为我们的辅助测试框架,以应对不同的测试需求。我们整体的技术选型如下表所示:
| 编号 |
平台 |
介绍 |
备注 |
| 1 |
jenkins |
开源的持续集成平台 |
整个自动化测试平台的核心 |
| 2 |
robot framework |
开源的自动化测试框架 |
测试用例执行的核心 |
| 3 |
Selenium2Library |
RF框架下的Web测试库 |
web测试用例依赖库 |
| 4 |
requestsLibrary |
RF框架下的API测试库 |
api测试用例依赖库 |
| 5 |
newman |
postman的命令行工具,用于REST API测试 |
api测试用例执行工具 |
| 6 |
jemter |
通用的接口测试工具 |
api测试用例执行工具 |
| 7 |
docker |
一个开源的应用容器引擎 |
用于创建测试环境 |
| 8 |
gogs |
开源的git web服务器 |
用于管理自动化测试用例 |
3.2 测试平台设计
这里,我们通过docker容器技术,封装了相关的测试环境,使得测试环境随用随起,用完即销毁,不污染我们测试机本身的系统环境。同时,也不需要我们在测试机上安装不同的测试工具了,通过docker,我们可以同时在测试机上启动多个容器来运行不同的测试任务。
这里是相关的测试环境docker镜像地址。大家可以自己pull下来运行。
| 镜像地址 |
介绍 |
备注 |
| wywincl/docker-jmeter |
jmeter镜像,提供jemter执行环境 |
|
| wywincl/robotframework |
Robot Framework镜像,提供RF执行环境, 支持Web与API测试,内置了Selenium2Library和RequestsLibrary库 |
|
| postman/newman_ubuntu1404 |
newman镜像,提供了newman执行环境 |
|
样例1, 运行一个robotframework容器。
docker run -it --rm -v /path/robot-content:/etc/robot wywincl/robotframework [options] data_sources
样例2, 运行一个newman容器。
docker run -v ${WORKSPACE}:/etc/newman postman/newman_ubuntu1404 run "testcases/smoke_test/restapi_smoke_test/AMS_RESTful_API_SMOKE_TEST.json" -r "cli,junit" --reporter-junit-export
详细的使用介绍,请大家参考相关工具的使用指南。