cdn cache系统的自动化测试

    在整个CDN系统中cache是很一个重要组成部分,各个cdn厂商常用的cache开源软件包括:squid、nginx、ats(trafficserver)、varnish等。

    各大互联网公司自建的cdn,cache的开发需求大部分来自厂内,根据自己厂的业务特点开发,功能相对少一些。对于传统cdn厂商,cache系统往往需要对接各种各样的客户,经常会有各种各样来自客户的不同需求,大量的需求导致cache系统的版本迭代速度也要很快,每次发版之前的回归测试,都会对测试的同学精神和肉体上带来极大的伤害。

    cache系统的自动化测试不同与普通的接口自动化,需要频繁修改cache系统配置、修改源站配置、拼装各种各样的url、url和header不仅客户端需要检查,源站也需要检查,还需要支持非标准的http协议,如purge、refresh。

一 cdn cache系统的架构

    openresty + ats

    openresty负责处理业务逻辑

    ats负责cache(ats跟openresty同台部署,也可能分开部署)

二 自动化测试的架构

    robotframework + 自定义库(Python) + flask

        robotframework:封装测试关键字、管理测试用例、生成测试报告

        自定义库(python):robotframework原生不支持的http扩展协议,比如purge请求、refresh请求

        flask:mock server,设置源站实体文件、响应header,检查request header、url。

        cdn cache系统的自动化测试_第1张图片

三 主要功能模块

        robotframework的基础功能已经很强大,我们需要用的大部分功能只需要在原有关键字的基础上封装就可以了,说一下为什么既然原生就已经支持了很多功能,我们还要进行二次封装,robotframework原生的关键字都比较长,而且大部分关键字是由几个单词拼起来的中间还有空格,这样看起来太丑了;主要原因还是因为我们需要的一个动作,原声的关键字往往需要好几个步骤才能完成,封装以后的关键字,写的测试用例简洁明了。(后面看个例子就知道简洁了)

        我们主要是针对以下几个功能进行了封装:

            ssh:nginx、ats控制都需要先建立一个ssh连接进行操作,还有更新nginx、ats的配置文件,获取日志文件,执行其他shell命令

            nginx控制:nginx的start、stop、restart、reload、更新配置文件

            ats控制:ats的start、stop、restart、reload、cleancache、更新配置文件

            mock源站:设置respone header,检查request header,检查request url

            http:发送http get、post、refresh、purge请求,检查响应header、响应码、body

           cdn cache系统的自动化测试_第2张图片

          

四  目录结构

        文件太多了,所以只保留的二级目录

         cdn cache系统的自动化测试_第3张图片

五  具体模块实现或思路

         ssh封装:http://blog.csdn.net/zpeng421x/article/details/73330816

         ats控制器:http://blog.csdn.net/zpeng421x/article/details/55097495

         robotfreamework实现非标准http协议:http://blog.csdn.net/zpeng421x/article/details/54861194
        及其他文章





你可能感兴趣的:(cdn,robotframework,自动化测试,trafficserver)