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
详细的使用介绍,请大家参考相关工具的使用指南。