预设条件
产品运行在Linux CentOS6 X64上
python3,Djanggo,Cherrypy安装好

手动安装过程
登录服务器
检查是否有以前的版本的产品在运行,有,停掉
如果有原来的代码包删除掉
上传安装包文件(手工winscp)
备份原来的产品安装目录
解压安装包文件
运行run.sh,启动服务
浏览器登录页面校验服务是否启动

import paramiko
import sys #创建SSHClient,实例对象
ssh = paramiko.SSHClient() #信任远程机器,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接远程机器 地址、端口、用户名、密码
ssh.connect(("192.168.160.234",
22,
"root",
"magic")) def remoteRun(cmd,printOutput=True):
stdin, stdout, stderr = ssh.exec_command(cmd)
output = stdout.read().decode('utf8')
errinfo = stderr.read().decode()
if printOutput:
print(output+errinfo)
return output + errinfo #查看老版本是否运行
stdin, stdout, stderr = ssh.exec_command(
'ps -ef|grep apiteach|grep -v grep') # 打印返回值
output = stdout.read().decode()
print(output) if 'python3 project/cherrypy_startup.py apitesch' in output:
print("老版本存在,杀死老版本") parts=output.split(' ')
#去除掉空字符串
parts=[part for part in parts if part]
pid=parts[1]
ssh.exec_command(f'kill -9 {pid}') #删除文件
ssh.exec_command('rm -f restapi-teach.zip') #上传文件
sftp=ssh.open_sftp()
#左边本地文件,右边上传位置
sftp.put(r'f:\temp\restapi-teach.zip','/home/stt5/restapi-teach.zip')
sftp.close() print('备份原来的安装目录')
remoteRun('rm -rf restapi-teach.bak;mv restapi-teach restapi-teach.bak') print('解压安装包')
remoteRun('unzip restapi-teach.zip',printOutput=False) print('运行')
remoteRun('cd restapi-teach;chmod +x run.sh;dos2unix run.sh;'
'./run.sh;sleep 5') print('检查版本是否运行成功')
output=remoteRun('ps -ef|grep apiteach|grep -v grep') #如果存在,运行成功
if 'python3 project/cherrypy_startup.py apitesch' in output:
print("新版本运行成功")
else:
print("新版本运行失败")
sys.exit(3) from selenium import webdriver driver=webdriver.Chrome()
driver.implicitly_wait(10)
driver.get(f'http://127.0.0.1:8066/mgr/login/login.html') driver.find_element_by_id('username').send_keys('auto')
driver.find_element_by_id('password').send_keys('auto')
driver.find_element_by_tag_name('button').click()
 

python 实现自动部署测试环境的更多相关文章

  1. 记录使用gogs,drone搭建自动部署测试环境

    使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...

  2. jenkins自动部署测试环境

    构建脚本如下: echo "当前目录":$(pwd)echo "当前时间":$(date +%Y-%m-%d_%H:%M)find ./ -type f -na ...

  3. redis cluster安装部署(测试环境)

    redis 应用于web前端,做缓存和数据存取的速度是挺可观的,最近看了一些资料,手痒了,就弄了一个测试环境,两台方案,试用一下. ##Redis 集群部署## 一,方案调研: 参考博客: http: ...

  4. jenkins+php+svn快速部署测试环境开发环境快速部署

    jenkins 虽然作为java常用的打包部署工具,不过也可以使用在phpweb项目部署管理,前段时间帮公司部署了开发环境与测试环境,简单分享一下. 1.内网web环境搭建lnmp,centos下编译 ...

  5. Python Unittest - 根据不同测试环境跳过用例详解

    本文章会讲述以下几个内容: 1.Unittest 如何跳过用例 2.如何使用sys.argv 3.自动化测试项目中如何一套代码多套环境运行 一.Unittest跳过用例 @unittest.skip( ...

  6. Python Unittest根据不同测试环境跳过用例详解

    虽然现在用的Katalon,不过这篇Unittest基本的用法讲的还是不错的 转自:https://mp.weixin.qq.com/s/ZcrjOrJ1m-hAj3gXK9TjzQ 本文章会讲述以下 ...

  7. Tomcat环境配置部署测试环境及架构

    Tomcat环境配置已经在前面介绍过了,这边就为童鞋们介绍下对于Tomcat的架构是怎么样的! Tomcat的架构包含(bin.conf.lib.logs.temp.wenapps.work)等文件夹 ...

  8. 测试人员如何使用Git部署测试环境

    Git是分布式的版本控制系统. 作为一名Git的小白使用者,一开始接触很懵逼,因为总担心自己一不小心误操作影响代码仓库的代码,网络上关于Git的使用多从开发的角度,很少有人从测试的角度来介绍Git的使 ...

  9. 吴裕雄--天生自然python学习笔记:python实现自动网页测试

    Python 可实现的网页测试的功能十分强大,甚至能通 过编程来实现让绝大多数的测试过程自动化. 这对很多开 发者来说,绝对是不可多得的神器. hash lib 纽件可以判别文件是否有过更改,只需要用 ...

随机推荐

  1. Qt信号槽机制理解

    1. 信号和槽概述 > 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式(发布-订阅模式).当某个`事件`发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(s ...

  2. PyQt5开发实践(一、准备篇)

    前言 近一年来我开发了不少PyQt小项目,因为之前没用过使用C++语言的Qt,所以可以算是从零基础开始边学边做的,这个过程中再一次体会到国内技术社区的匮乏-- 国内关于PyQt的资料说少不少,说多也不 ...

  3. 七、AIDE入侵检测

    Aide通过检查数据文件的权限.时间.大小.哈希值等,校验数据的完整性 部署AIDE入侵检测系统 [root@proxy ~]# yum -y install aide         //安装软件包 ...

  4. MySQL 最佳实践 —— 高效插入数据

    当你需要在 MySQL 数据库中批量插入数百万条数据时,你就会意识到,逐条发送 INSERT 语句并不是一个可行的方法. MySQL 文档中有些值得一读的 INSERT 优化技巧. 在这篇文章里,我将 ...

  5. 【题解】Luogu p3478 [POI2008]STA-Station 动态规划

    题目描述 给出一个$N$个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 输入输出格式 输入格式 第一行一个数$n$,表示树上共有$n$个点接下来$n-1$行,表示$n-1$条边;每行 ...

  6. VBS脚本编程(2)——运算符

    算数运算符 用于执行数学计算的运算符. 1.加法运算符( + ) 计算两个数之和. 2.减法运算符( - ) 计算两个数值的差或表示数值表达式的负值. 3.乘法运算符(*) 计算两个数之积. 4.除法 ...

  7. 第三方模块npm

    npm介绍 npm 全名 node package manager   node包管理工具,增删查改 如果npm操作太慢,可以安装npm镜像 npm的下载 比如全局下载一个jquery文件,全局下载的 ...

  8. kube-controller-manager源码分析-AD controller分析

    kubernetes ceph-csi分析目录导航 概述 kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD contr ...

  9. python读取txt文件绘制散点图

    方法和画折线图类似,差别在于画图函数不一样,用的是scatter() import matplotlib.pyplot as plt #以外部两个txt表分别作为x,y画图n=0m=0with ope ...

  10. Dagger2入门,以初学者角度

    2016-12-21 更新:添加@Subcomponent注解以及Lazy与Provider的使用,本文基本完结!如果有好的建议请提出,感谢大家的支持,谢谢 依赖注入 Dagger2是Android中 ...