在项目迭代周期有限的情况下,流程冗长条件复杂的升级测试无法再依赖人工的办法完成,必须借助自动化测试的工具和方法解决这个问题。本文将以TranswarpDataHub(TDH)的自动化升级测试的架构为例,分析应如何选择并系统性的整合不同技术以合理实现自动化测试以及部署升级。 随着产品发行版的增多,大量存在于客户现场的老版本有待升级更新,每当一个新版本产品发布给客户前,测试人员必须保证新的发行版可以完美支持老版本的升级。每一版产品引入的新功能或组件,也需确定不会和老版本产品既有的功能产生冲突。由此体现了升级测试的极度必要性。通常在对TDH进行版本升级测试时,我们的开发人员不仅要考虑到前端界面,还要考虑到后端升级程序的执行。而且为了保证测试维度的完备性以及便于分析,升级测试框架必须保证以下几点: 自动升级测试 模拟用户的行为 稳定性保证 详细的测试报告 随时查看升级过程 考虑到上述几项需求,我们决定采用Docker+Jenkins再结合Selenium+VNCServer+Guacamole+Python这种技术混合型组合构建自动化升级测试环境。 首先请读者阅读下面的技术详解,简单了解这五种相关工具和技术的作用。 技术详解 Docker Docker是被广泛应用的一种开源容器引擎,它可以支持程序的快速部署和移植,并具有很好的环境隔离性。在本文的例子中,我们将TDH升级所需要的OS运行环境——RemoteWebDriver和VNCServer,做在一个Docker镜像里,作为testbench。执行TDH升级测试前,只需将TDH的程序部署到对应的testbench容器中即可运行。其中VNCServer提供的远程桌面服务允许开发者在Docker中debug测试中发现的问题。 以下是制作镜像的对应部分的Dockerfile文件内容: FROMcentos7_webtest:latestMAINTAINERtranswarp #installjdk RUNrpm-ivhjdk-7u71-linux-x64.rpm #changeyumrepo ADDchange_yum.sh/root/ RUNsh/root/change_yum.shrm-f/root/change_yum.sh #addhtml ADDHTMLTestRunner.py/usr/lib/python2.7/site-packages/ ... Jenkins Jenkins是一种持续构建工具,为了方便开发和测试人员监控每日升级测试的状态,我们将TDH升级测试按照流程阶段和测试用例做成若干个参数化的JenkinsJobs,通过Jenkins的计划任务,启动TDH升级测试。 Selenium Selenium是一套面向web应用的开源的测试轻量级框架,具有跨平台性的优点,并获得了包括Java、Python在内的多个主流编程语言的支持。Selenium是TDH前端操作的重要工具,我们通过Selenium实现启停服务,添加配置,安装LDAP、Gardian等一系列操作。 下面是Selenium登陆Transwarp-Manager对应的代码示例。 fromseleniumimportwebdriverfromselenium.webdriver.北京治疗白癜风最权威的医院北京治疗白癜风哪家医院好
|