前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DevOps之自动化测试平台

DevOps之自动化测试平台

作者头像
用户7533190
发布2020-07-06 16:40:46
2.1K0
发布2020-07-06 16:40:46
举报
文章被收录于专栏:基哥杂记基哥杂记

1. 背景

oss软件整体采用前后端分离的模式,前端采用JQuery自研组件,包含常用web组件。后端采用spring boot + spring cloud + consul + gRPC的微服务架构。内部服务的调用通过consul注册中心集群,建立调用通道,因此后端开发了大量的api接口。为了满足这些api能更好的回归测试,我们希望能有一个自动化测试平台,它应该要满足以下几个特性:

1. 能简单的管理测试集和测试用例,并和api管理平台能集成。

2. 选型自动化测试框架,能同时支持api和web。参考wiki文章

3. 开发尽量简单化,平台能有IDE,和丰富的调用库。

4. 一些简单的CRUD的api,平台可自动生成测试代码。

5. 和CI / DevOps实践的其他ALM工具无缝集成。

2. 流程说明

以下是我司的软件测试和发布流程,自动化测试做为整个发布流程的一个checkpoint,在staging环境运行,当用例不能全部通过时,打包不通过。

3. katalon用法

3.1. 项目结构

katalon项目结构

1. profiles,全局配置文件,用于管理项目的全局配置,如域名、登录的账号/密码等;

2. Test Case,用例开发入口,groovy语法;

3. Object Repository,可定义Test Object和Web Service Request,界面元素和请求;

4. Test Suites,用例集入口,管理Test Cases;

5. Key Words,定义一些常用的groovy类;

6. Reports,用例执行完的报告。

详细说明可见:https://www.testclass.cn/katalon_studio_start.html

官方文档:https://docs.katalon.com/katalon-studio/docs/index.html

3.2. 用例设计

1.api数据维护到api-doc,需要检查入参、出参、示例的准确性;

2.确定api是读还是写操作,读操作在prod上执行,写操作在staging执行;

3.用例设计:

• 通用用例:api状态码返回200,api接口返回数据响应时长在3s内;

• 业务用例:一些重要的业务特性需要考虑用例覆盖。example:边缘流量是否大于中转流量,请求成功率是否低于90%,推送成功与否。

3.3. 用例开发

1.Test Cases新增一个用例文件,文件命名遵循api-doc的命名方式:模块_接口编号.tc,如:customer_tc9_bandwidth_country.tc。注意必须有后缀,否则集成到jenkins报告显示会有问题;

2.指定用例执行环境,staging或prod;

3.获取登录的授权token;

4.构造参数,header、body、请求方式get/post;

5.对返回的数据设置断言,assert 或 KeywordUtil.markFailed;

6.代码调试,通过设计不同用例,验证用例passes和failure的状态;

7.用例开发完成,需要加入到对应的Test Suites,jenkins持续集成才可覆盖到该用例的执行。

3.4. 与jenkins集成

考虑到oss自动化测试用例的差异性,在jenkins新建3个集成项目,Jenkins的配置详见:http://ci.onewocloud.net/job/autotest-peacock/configure,具体项目说明如下:

autotest-ossweb,页面自动化测试项目,目前10个用例,主要是登录、配置单、证书查询、带宽查询等客户高频操作。但因为后续页面会调整成react新框架,因此原有的用例将不适用,需要重新录制。用例录制可参考文档:Katalon简介.pptx

autotest-peacock,复杂业务的api自动化测试项目,目前45个用例,主要覆盖swan、open-api、cygnet模块。如推送预取成功率、带宽是否掉坑、swan的统计报表等。详见具体用例列表

autotest-ossapi,简单业务可由用例平台生成的api自动化测试项目,目前8个用例,主要用于管理简单的增删改查,业务逻辑较为简单的用例,通过平台配置用例的基本参数即可自动生成。在用户中心->组件用例统计->新增用例集/用例。

自动化测试结果:

4. 用例生成平台

4.1. 流程图

流程图

研发新开发完一个接口,需要在falcon平台配置对应的api参数,也需要配置对应的自动化测试用例,具体流程如下:

1. 新开发一个api接口,用户在falcon平台界面设置api的属性,属性有:标题、url、所属组件、method、接口类型等;

2. 新增该api接口的用例信息,对应的属性有:用例编号、用例名称、用例执行顺序、重要性、状态、用例路径、测试用户、匹配符替换(用于替换url的**)、输入、输出等;

3. partridge每隔30分钟请求falcon的测试用例数据接口,将json格式封装成数据对象放到内存;

4. 根据不同的接口类型(get/post/put/delete),调用不同的freemaker模板,生成xml和groovy文件,涉及的文件:

1) Test Cases/api/cygnet_api/component.delete.tc #用例xml

2) Scripts/api/cygnet_api/component.delete/Script1548905939790.groovy #脚本数据

3) Test Suites/api/cygnet_api.ts #用例集数据

5. 用JGit将生成的文件提交到gitlab上;

6. Jenkins构建,运行自动化测试项目。

4.2. 平台操作

1. 用例数统计

2. 用例管理界面

5. 机器部署

1. partridge:192.168.1.115,规则密码

部署路径:/usr/local/partridge,supervisor启动

2. Jenkins-agent:192.168.1.187,规则密码

部署路径:C:\jenkins,启动start_slave.bat

用例执行脚本:C:\katalon\run_autotest_ossapi\run_ossapi_test.bat

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 基哥杂记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档