Linux自动部署框架,在Linux下编写一个集群自动化测试框架
目标:自动化测试框架(一键QA)
解决方案:
1. 框架的可配置
框架本身需要一个可配置文件。这个文件可以以任何形式存在,如key-value的键-属性,或者是xmlfile,都可以。配置文件仅包含必须配置的属性,比如服务器ip,工作目录,需要跑哪类测试等,不需要太大,已简单易配为主。每次跑测试者只需要配置好这个文件,其他的都不用care,让自动化框架搞定一切。
2. 需要一台机器做总控
这台机器我们称为client,是测试的大本营。也是我们的工作目录。
3. 我们需要测试的程序所运行的机器
就是server。
4. client到server的ssh无验证连接
这一步非常重要,因为要通过client去控制,监测server上发生的一些事情,只能通过ssh后跟命令去做。所以必须去除client和server之间的密码验证。
5. 自动部署。
在做了第四步之后,我们需要在开始时,将框架本身里,需要在server上跑的各个组件scp到各台server的对应工作目录里。server的ip以及工作目录都由框架的属性文件指定。
6. 一个由脚本实现的,简单的用于收发自己命令的客户端服务器程序。
我们可以称之为哨兵。哨兵位于各个server上,另外我们需要一个教官。教官位于我们的客户端上。
哨兵和教官之间通过我们自己定义的协议进行通信,哨兵负责控制记忆检测server,教官负责接收client上的命令,再将命令转发给哨兵。
这套机制可以说是整个自动化测试框架的核心。对于远程server上发生的一切,如果client仅仅通过ssh命令进行控制,那达到的功能会是有限的,而且实现起来不方便也很丑陋。添加功能也很方便,通过增加哨兵的协议和更多函数功能就可以了。
7. 一个稳定的lib库
所有的测试用例都需要公用的一套库,必须稳定,库的内容包括一些封装过的,我们需要测试的应用程序所支持的所有功能,它们的发送/接收函数,server的控制函数(启动,关闭,重启,格式化,等等)对于远程server的操作,监控,则可以通过向教官发送指定命令实现。
8. 测试用例
所有的testcase是核心,testcase应该做到即插即用,即需要增加新的test时,只要将新case加到文件夹里,testcase跟框架唯一的耦合处就是它们使用了lib,testcase中不允许使用任何的硬编码,一切参数通过外部传入。testcase应该做到,可以由自动化框架调用,也可以让人来手工跑。
9. 一个环境配置确认脚本
这个脚本查看本地和远端的软/硬件情况。比如对方的网卡设置是否正确,mount的设备是否正确,可执行文件是否在正确位置,版本是否是我们需要的等等。遇到任何问题,及时返回错误,报告情况并中断整个框架执行直到有人来将环境配置正确。
21/212>
Linux自动部署框架,在Linux下编写一个集群自动化测试框架相关推荐
- 调度框架学习笔记(3)—— 集群调度框架的架构演进过程
本章是 The evolution of cluster scheduler architectures 文章的学习笔记.这篇文章讨论了这些年调度架构是如何发展的以及为什么会这样发展. 首先介绍一下这 ...
- linux应用程序的编写实验原理,操作系统实验 1.在linux下编写一个应用程序 联合开发网 - pudn.com...
操作系统实验 所属分类:Linux/Unix编程 开发工具:C/C++ 文件大小:1KB 下载次数:3 上传日期:2019-05-01 20:34:21 上 传 者:烟雨南风起 说明: 1.在lin ...
- linux编写php,Linux 下编写一个 PHP 扩展
假设需求 开发一个叫做 helloWord 的扩展. 扩展里有一个函数,helloWord(). echo helloWord('Tom'); //返回:Hello World: Tom 本地环境 P ...
- 《Linux运维实战:Centos7.6基于ansible一键离线部署mongodb4.2.23容器版副本集群》
一.部署背景 由于业务系统的特殊性,我们需要针对不同的客户环境部署 mongodb副本集群,由于大都数用户都是专网环境,无法使用外网,为了更便捷,高效的部署,针对业务系统的特性,我这边编写了基于ans ...
- linux系统下安装elasticsearch集群踩过的坑
公司之前用的solr发现不太好用准备替换成es于是乎开始大刀阔斧的更换搜索服务器,本着有新版本不用旧版本的原则,所以刚搭好的基础环境,又得重新部署一遍.(重要的事记得说三遍!!! 记笔记真的很重要,好 ...
- linux下搭建zookeeper集群
linux下搭建zookeeper集群 1.准备 1.下载zookeeper压缩包 (注:下载3.4.14版本,3.5以上运行时会少jar包) 2.系统:centOS7 安装好java环境 3.将压缩 ...
- 百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署
百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署 作者 | 钰莹近两年,联邦学习技术发展迅速.作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联 ...
- Elasticsearch从入门到精通 理论 集群 优化 框架集成
Elasticsearch 入门 Elasticsearch 安装 下载软件 Elasticsearch 的官方地址:https://www.elastic.co/cn/ Elasticsearch ...
- CentOS 7.4下Redis及集群的安装及配置
(一)Redis概述 Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完 ...
最新文章
- 自定义评分器Similarity,提高搜索体验
- vue应用开发过程中在谷歌浏览器遇到的奇葩问题——谷歌插件屏蔽接口请求
- SAP License:ERP系统管理软件该有的“魅力”
- the python challenge_pythonchallenge 全部关卡提示
- IntelliJ IDEA Community Edition 社区版插件汇总
- 整人输入指定内容退出html,整人代码
- 如何获得Windows聚焦壁纸
- 【梳理】离散数学 第15章 欧拉图与哈密顿图 15.3 最短路问题、中国邮递员问题与货郎担问题
- 华为 AR系列路由器密码重置
- 英雄联盟服务器维护2019.4.5,lol维护公告最新时间 英雄联盟11.9版本4月29日更新内容...
- 大陆打电话到香港要怎么打?那发信息呢?
- Mobile TV Vs IPTV
- 国产化复旦微开发板FMG0系列学习过程
- 【运营】0-1搭建自媒体用户运营分析报告——以B站为例
- [mit6.1810] Lab system calls
- stm32的简易小项目之震动感应灯
- 迎接新时代,维谛技术全面呈献硬核策略
- proguard学习
- Excel T检验双样本等方差分析
- firewall 防火墙