开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计:几个测试示例分享】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/82/detail/1292
几个测试示例分享
内容介绍:
一、案例:alpd-bot-ssh 单元测试
二、微服务契约测试实践
三、案例:alpd-bot-ssh 的端到端的自动化测试
四、微服务测试自动化的实践
一、案例:alpd-bot-ssh 单元测试
案例是 demo 里面有的,在用到这个代码的时候,在 alpd-bot-ssh 这个服务里面有单测,单测是一个非常典型的 grand 单测的一个玩法,直接用 go 单色框架可以看到这个服务提供的是 authserver 的接口给外部用户,依赖两个 GPC 的服务,应用内部有两个主要的方法 userAuth 和 execCmd,右边是 userAuth 单测用例的截图。
整个的结构,一是 swait setup 做了启动 simulated 的任务,启动一个模拟的 auth server,因为不可能真的去找 auth server,需要有个契约约定;二是为这个方法做了一个 more,确定返回特定的值,比如 user 应该是什么,做的应该是什么,才返回正确,不然就会返回失败;三是具体验证的 keys 了,可以把一当做 swait setup,把二当做 test setup,三是test keys,assential 里写了一些单测用来做简单的验证。
二、微服务契约测试实践
特点是一个简单典型的契约测试场景,跟 auth 服务是有契约的,契约通过 test 去模拟,所以整个数据也有测试用例,就 test 本身设置,就完成了在一个小容器或者本身的进程里面就单测的一个任务。
三、案例:alpd-bot-ssh 的端到端的自动化测试
端到端的测试,还是 GS,因为这是主应用,用 alpd-bot 框架所写的端到端测试的例子,这个代码可以在最新的 cude 阿里云上面下载,也是在 ssh 服务的 atest 目录下。这个用例从左边看就是整个用例执行的一个日志,一个结果,可以看到里面包含了两个 sweet,一个是 IP,一个是 weather,两个主要的服务对象。每个 Sweet 里面有几个测试,每个测试会描述是干什么的,比如查找本地 IP,或者查询天气等这样的测试用例。
右上角是整个端到端测试的目录结构,里面有基本的用例,有weather.robot、IP.robot,有资源文件,比如 attent library,有个 common resource。
右下角是用例本身,可以看到定义了 Tag,也定义了 document,用来描述它是干什么的,所以不同的用例有不同的 level,如果 level1和 level2可以在执行的时候结果的地方去做筛选和判断,就知道测试完之后 quality level 到了几,还可以筛选只跑过 level1 时候可以保证快一点。
注意测试用例更多会使用业务的语言来去描述,不应该是代码,应该是需求的文档,可以去描述的文档去描述。
四、微服务测试自动化的实践
这里给了一个简单的实践架构,是前面 library 的扩展,从实现层次讲,library 可能会涉及到比如 core 和 service,以及其他的 robot 资源。可以思考一下,如果做相对大的完整的应用测试自动化,不是单元测试,测试自动化本身的一个架构是类似于分层的东西。