专栏首页互联网运维杂谈DevOps实践(1)面向服务的全自动化测试体系

DevOps实践(1)面向服务的全自动化测试体系

一. 功能

  1. 依托于robotframework
  2. 根据代码注释,自动生成测试库
  3. 自动搜索测试用例或指定测试用例文件运行
  4. commit触发测试和周期性定时(按天/小时)测试
  5. 测试报表统计(区分环境)
  6. 企业微信通知测试结果

在此之前,大家要去复习两个重要的概念,一个是【测试金字塔】模型,

另一个是【基于关键字和数据驱动的测试】,

二. 自动化测试架构

在这一套自动化测试架构中,代码注释起到了核心的作用,背后就是标准化的要求,代码注释的格式如下:

基于代码的comment,能完成如下能力的输出:

1、Document。我们要自动生成api接口说明文档,可以依赖此方法生成。

2、自动化生成服务测试用例。自动根据关键字构造自动化测试的方法和用例。

三.根据代码注释,自动生成测试库

指定项目的根目录,会自动将测试库写入到test/library/[项目名].py

如下代码

注意,如果post/put请求发送的是一个list数据,这里param请写struct类型。如

@param struct data

然后测试数据构造data=[{"a": 1}],框架将会发送[{"a": 1}]作为http body

会自动扫描并生成robotframework的测试库

使用者,只需要撰写测试数据即可(数据驱动测试)

四. 自动搜索测试用例或指定测试用例文件运行

  1. 自动搜索测试用例 根据我们的部署规范,工具会自动搜索/usr/local/easyops目录下的项目,符合如下要求: a. 文件夹必须是全小写的 b. 文件夹下有test/case目录
  2. 指定测试用例文件 可指定测试用例的文件/目录测试

五. commit触发测试和周期性定时(按天/小时)测试

  1. 工具会自动监听commit,触发测试
  2. 也可指定每1h或每1d测试

自动触发流水线执行全流程的验证,开发、测试和发布亦是如此。

六. 测试报表统计

  1. 我们提出3个评价指标: 成功率:成功的用例个数/ 总的测试用例个数 覆盖率:(keyword总数-未测试的keyword个数)/ keyword总数 测试用例指数:测试keyword的测试数据个数的平均。最小是1(每个接口都只有1个测试数据),希望能达到3~5
  2. 测试的结果数据会自动解析并存储到influxdb,利用grafana来展示
  1. 区分环境。我们有162、163、164等开发环境,所有数据都会区分显示

此时的环境管理非常重要,过去的痛苦之处是如何快速创建和有效管理环境。由于我们的研发模式采用的是git workflow模式,所以能产生大量的特性分支,一个特性势必对应一个环境。因此会产生大量的开发环境、集成测试和回归测试环境,必须能够保证我们服务测试用例和环境能一一对应,且无需人工接入,这一点就大大降低了测试维护的代价和成本。

七. 企业微信通知测试结果

项目的测试成功率小于100%,将会发送到企业微信

八. 总结

一个完善的自动测试体系背后,是有很多经验值得分享的:

1、研发参与测试。我们说的参与测试不是参与测试本身,而是参与测试体系的搭建。研发和测试为了共同的目标,稍作改变,而不是完全依赖后续环境,自动化测试体系构建成本就可以大大降低。

2、标准化。研发坚持标准化的代码习惯,基于标准化,传递能力给自动化测试过程,效率和质量都能得到保障。

3、质量意识前置。我们不把“质量当成测试组的职责”,而是把这部分的能力前置到研发阶段,共同构建质量保障壁垒。

4、自动化。我们在开发自动化测试体系的同时,把其能力和平台流水线能力对接起来,让执行和接入成本大大降低。

5、数据化度量。即使建立了完善的测试体系,如果没有很好的度量,效果依然不会很好,度量最好的方式——看板。

6、闭环。有问题就立即要去解决,让测试发现的问题闭环起来。

本文分享自微信公众号 - 互联网运维杂谈(waynewang_ops),作者:老王

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【PPT讲稿】什么是"运维合伙人"(纯图)

    在一次交流分享中,从研发、测试、运维三个角度做了一次SWOT分析,得出只有大家的能力叠加才能创造更多的价值。总而言之,合作是必然,融合也是必然,融合下的运维不是...

    用户1593318
  • 4个实施持续测试的“最佳实践”

    开发是一个有趣的大事件,因为我们处于传统测试与现代和持续测试之间的边界,正在从一个大型的筒仓式的结构转型到一个新的架构。之前的组织架构包含了开发团队和集中测试团...

    用户1593318
  • Jez Humble 10个最有深度的DevOps见解

    Jez Humble,【持续交付】和【精益企业】两本书的作者,作为持续交付方面的顶级专家,在其多次分享中有很多的真知灼见。本文对齐的观点做一个整理,和大家分享之...

    用户1593318
  • 软件测试之自动化测试

    自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程...

    测试开发社区
  • 腾讯文档EP之路 —CI x 自动化测试

    ? 点击上方蓝字关注我们! | 导语  持续集成强调开发人员提交了新代码之后,立刻进行构建、测试。根据测试结果,确定新代码和原有代码能否正确地集成在一起。本文...

    腾讯移动品质中心TMQ
  • 自动化如何选择用例

    问题来源于群里的一次聊天,在测试自动化实施中如何最大产出的问题。强调自动化覆盖率?太片面了不太行。自动化效率?由于稳定性和可靠性不给力,这一条好像也不行。BUG...

    FunTester
  • Robot Framework(5)- 使用测试库

    https://www.cnblogs.com/poloyy/category/1770899.html

    小菠萝测试笔记
  • 功能测试流程规范建设

    测试规范,网上随便一搜,都是一堆堆的范文,其实规范也是因人而定,每个人的规范或者依据项目或者部门,需要有特殊性,不过虽然可以定制部分,但是大体还是有很多相似之处...

    测试开发社区
  • Python自动化测试框架有哪些?

    来源:马哥教育链接:https://mp.weixin.qq.com/s/PvlaRmPmGc5b1XIMqMMslA令开发者万分高兴的是,开发自己的测试框架的...

    Py_lover
  • 测试从0到1测试人员职责主题讨论(六)

    本周讨论的话题测试人员职责是一个很通用又平常的话题,百度下搜索下或者看下这个岗位的招聘职责,但你是否想过,怎么这些岗位职责都是别人家公司的,怎么我都没做到呢?也...

    厦门-安仔

扫码关注云+社区

领取腾讯云代金券