IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 立即注册 - 请先获取邀请码

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 155|回复: 0

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

[复制链接]
来自- 广东广州

参加活动:0

组织活动:12

发表于 2017-8-22 15:55:20 | 显示全部楼层 |阅读模式 来自- 广东广州
一. 功能9 u$ b# d# s/ m, o
  • 依托于robotframework
  • 根据代码注释,自动生成测试库
  • 自动搜索测试用例或指定测试用例文件运行
  • commit触发测试和周期性定时(按天/小时)测试
  • 测试报表统计(区分环境)
  • 企业微信通知测试结果
    ) M6 R  }, e4 f6 d" k  W. f
    在此之前,大家要去复习两个重要的概念,一个是【测试金字塔】模型,

# h: ^) S' \& E1 Q8 W- q/ \( }3 X0 I! C
另一个是【基于关键字和数据驱动的测试】,  H0 k. c  @" R2 {- A

& U% `. _! n4 o) s7 |7 S& f" f  w4 o二. 自动化测试架构
在这一套自动化测试架构中,代码注释起到了核心的作用,背后就是标准化的要求,代码注释的格式如下:
基于代码的comment,能完成如下能力的输出:
1、Document。我们要自动生成api接口说明文档,可以依赖此方法生成。
2、自动化生成服务测试用例。自动根据关键字构造自动化测试的方法和用例。
三.根据代码注释,自动生成测试库
指定项目的根目录,会自动将测试库写入到test/library/[项目名].py
如下代码
注意,如果post/put请求发送的是一个list数据,这里param请写struct类型。如
@param struct data
然后测试数据构造data=[{"a": 1}],框架将会发送[{"a": 1}]作为http body
会自动扫描并生成robotframework的测试库
使用者,只需要撰写测试数据即可(数据驱动测试)0 R1 F7 G  t$ I# l3 n4 B
四. 自动搜索测试用例或指定测试用例文件运行) ?5 P' J7 r6 j# t
  • 自动搜索测试用例
    , e4 T$ z  [' Y$ K: E  P: W) w+ @; G根据我们的部署规范,工具会自动搜索/usr/local/easyops目录下的项目,符合如下要求:7 K+ D( q/ Z+ w1 }4 b& q
    a. 文件夹必须是全小写的" E- u! v! V! i" M: w' B8 Q
    b. 文件夹下有test/case目录4 c/ I8 }9 _* `3 V: X

    # N4 X0 ?6 H* V1 Y7 k
  • 指定测试用例文件
    & u) ^$ r+ D6 @! m8 N+ G$ N可指定测试用例的文件/目录测试
    % Q1 `8 j8 w: K2 F
五. commit触发测试和周期性定时(按天/小时)测试
  • 工具会自动监听commit,触发测试
  • 也可指定每1h或每1d测试
    ) ?  A4 F0 h3 X. Y

    # U5 m* H0 h4 Z' y! V  k% u  |& Y% C
        自动触发流水线执行全流程的验证,开发、测试和发布亦是如此。
六. 测试报表统计
  • 我们提出3个评价指标:1 j7 G! K% r! S* V
    成功率:成功的用例个数/ 总的测试用例个数
    7 z; G# ?: ^* P9 @7 O7 ~- z% W覆盖率:(keyword总数-未测试的keyword个数)/ keyword总数
    # H, R: O# e: k( ?4 h$ Q. U: N3 e; |测试用例指数:测试keyword的测试数据个数的平均。最小是1(每个接口都只有1个测试数据),希望能达到3~5
  • 测试的结果数据会自动解析并存储到influxdb,利用grafana来展示
    2 U  t7 B: \  Y8 t- Z* l
  • 区分环境。我们有162、163、164等开发环境,所有数据都会区分显示
    3 y+ F1 I0 U( J/ E! ~# ?# Y
      此时的环境管理非常重要,过去的痛苦之处是如何快速创建和有效管理环境。由于我们的研发模式采用的是git workflow模式,所以能产生大量的特性分支,一个特性势必对应一个环境。因此会产生大量的开发环境、集成测试和回归测试环境,必须能够保证我们服务测试用例和环境能一一对应,且无需人工接入,这一点就大大降低了测试维护的代价和成本。/ R7 K4 t$ O: Y3 L
七. 企业微信通知测试结果
项目的测试成功率小于100%,将会发送到企业微信
    八. 总结
        一个完善的自动测试体系背后,是有很多经验值得分享的:
        1、研发参与测试。我们说的参与测试不是参与测试本身,而是参与测试体系的搭建。研发和测试为了共同的目标,稍作改变,而不是完全依赖后续环境,自动化测试体系构建成本就可以大大降低。0 M6 j, H  p, T2 p# p% W! A+ a
        2、标准化。研发坚持标准化的代码习惯,基于标准化,传递能力给自动化测试过程,效率和质量都能得到保障。
& e# H& c, X2 G0 W
        3、质量意识前置。我们不把“质量当成测试组的职责”,而是把这部分的能力前置到研发阶段,共同构建质量保障壁垒。
+ N( T8 L3 W  Z5 t, W! E+ Y4 M
        4、自动化。我们在开发自动化测试体系的同时,把其能力和平台流水线能力对接起来,让执行和接入成本大大降低。
        5、数据化度量。即使建立了完善的测试体系,如果没有很好的度量,效果依然不会很好,度量最好的方式——看板。! d* K3 P% z  X! M
        6、闭环。有问题就立即要去解决,让测试发现的问题闭环起来。

* E  ?0 z2 C. U7 x6 G
原创:老王
0 m3 q2 g- b, V8 h

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册 - 请先获取邀请码

x

本版积分规则

团购课程最新动态

 

 

高品质!好口碑!

百分百通过率!

PeopleCertEXIN

国际授权资质!

ITIL Foundation北上广

2天精华班,包证书

ITIL Foundation三天精

讲,知名讲师,包证书

ITIL Expert 金牌讲师北

上广深11天,包证书

DevOps Foundation

2天热点认证班,包证书

ITSS 认证IT服务经理

4天课程,包证书

Prince2双证4天高级班

Cobit高端课程2天班

Togaf高端课程4天班

 

报名热线: 4008-060-230


QQ|小黑屋|手机版|Archiver|ITIL先锋论坛万人社区 ( 粤ICP备17056641号|网站地图

Baidu

GMT+8, 2018-2-20 23:54 , Processed in 0.209396 second(s), 35 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表