jekins测试环境自动化

最近搭建测试环境自动化,之前都是用机器猫。机器猫的流程大概是这样,开发打包上传到svn,给测试一个svn地址,测试到机器猫上传文件,然后再运行启动。

为了减去开发打包这个环节,所以专用jenkins。

实现需求如下:

1、自动拉取git代码,自动打包

2、备份远程机的jar包

3、上传至远程机,并启动项目

4、提供回滚功能

cat /data/jekins_shell/autoshell

#参数 $1项目  $2方法  $roll_bak参数
app=meng

if [ -n "$1" ];then
  app=$1
fi

app_home=/data/webroot/youximao/${app}
app_jar=${app_home}/${app}.jar
bak_home=${app_home}/bak
bak_file=${bak_home}/${app}_$(date +"%Y-%m-%d_%H%M%S").jar

if [ ! -d "$bak_home" ]; then
  mkdir $bak_home
fi

#保留个数
save_count=10

#执行回滚操作
function roll_back(){
  echo  filenameis: ${1}
  filename=`ls $bak_home/*jar |sort -n|head -n 1`
  echo $1
  if [ -n "$1" ]; then
     if [ -e $bak_home/$1 ]; then
       filename=$bak_home/$1
     fi
  fi

  echo old${filename}
  if [ -e $filename ]; then
    echo 拷贝开始 $filename   $app_jar
    \cp -f  $filename $app_jar
    echo 拷贝完成 开始启动
    sh /etc/init.d/tomcat-$app restart
  fi
}

function add_bak(){

  cp $app_jar ${bak_file}

  #文件总个数
  count=`ls $bak_home/ |wc| awk ‘{print $1}‘`

  #删除个数
  del_count=$[$count-$save_count]

  #倒序排列 删除最后几条
  if [ $del_count -gt 0 ]; then

        echo $del_count" count deleted "
        ls ${bak_home}/*jar  |sort -r|tail -n $del_count|xargs rm -rf
  fi

}

case $2 in
       add_bak)
     add_bak;;
       roll_back)
         roll_back $3;;
esac

[[email protected] .ssh]# cat ~/.jenkins/jekins_shell/general_shell

#!/bin/bash

#app名称
app=$1

#远程服务器地址
remote_host[email protected]${2}

#最新的jar包
new_jar=/root/.jenkins/workspace/${app}/target/${app}.jar

#远程jar包目录
remote_home=/data/webroot/youximao/${app}

#远程jar包
remote_jar=${remote_home}/${app}.jar
ssh ${remote_host} "/data/jekins_shell/autoshell ${app} add_bak"

scp ${new_jar} ${remote_host}:${remote_jar}

#远程执行
ssh ${remote_host} "/etc/init.d/tomcat-${app} restart >/dev/null 2>&1"

1、允许root登陆
vi /etc/ssh/sshd_config #PermitRootLogin no (注释掉)
/etc/init.d/sshd restart 重启sshd服务
2、创建自动化脚本
mkdir /data/jekins_shell
上传autoshell 脚本
chomd 555 autoshell 设置为可执行权限

3、登陆jekins 服务器
cd /root/.ssh
执行 ssh-copy-id 192.168.50.197 将公钥发送到远程,显现登陆免密【远程没有添加的情况下】
登陆远程 ssh [email protected] 必须要登陆一次才行

scp autoshell [email protected]:/data/jekins_shell/

4、创建项目 类型为maven

调用默认的shell 参考cat
编写自定义shell 参考meng

项目回滚

./autoshell meng roll_back

原文地址:https://www.cnblogs.com/milanmi/p/8618048.html

时间: 2024-10-31 21:44:21

jekins测试环境自动化的相关文章

[原创]好买财富测试环境自动化发布部署系统实践

一  为什么要开发一套测试环境自动化发布部署系统? (1) 好买的交易系统越来越庞大,越来越复杂,仅搭建一套系统要涉及到50多件内容: (2)手工搭建测试环境容易出错,投诉较多,各业务方抱怨较多: (3)搭建测试环境效率低下,庞大的系统,旧的方式需要大约忙1天,有时出了问题时间会更长, (4)开发多分支并行开发,抢占市场,要求必须满足公司在快速开发和迭代测试,目前维护了16套环境,估计16年会更多: (5)  以前系统搭建,太依赖个人的经验,人员离职会造成非常大的瓶颈; (6)都是领导逼的,这年

自动化测试之python----selenium测试环境搭建

自动化测试使用python灵活性很强,而且语言容易入手,对于测试工程师来讲非常适用的一种语言,目前主流的也是python来写脚本实现web.接口等测试自动化. 自己在自动化领域经过大量的摸索和实践,积累了一些经验,以后慢慢的在博客给大家分享. 下面先介绍测试环境的准备: 一.首先下载安装pyhon及setuptools(现在py基本都用3.0了,当然有一部人还在用2.7版本) 官网下载python地址:https://www.python.org/ftp/python/3.6.1/Python-

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

一块钱使用开发测试环境,助你快速打造万圣节促销应用

作为一名兢兢业业的员工,我热爱很多节日,比如:春节.劳动节.国庆节(放假的日子不要太爽好不啦),但是我也讨厌很多节日,比如:情人节.教师节.万圣节(又不放假,还要搞事情!).节日期间总是企业间最拼效率的时候,谁的产品先上线,谁就能抓住先机,赚他个盆满钵满的,老板亲切和蔼的告诉我们,工作要点就是一个字:快快快! 然而理想和现实还是有差距的!眼看万圣节就要来临,一个整合促销功能的小应用只要短短几天就能开发完毕,但购置一套开发测试环境却要等待几周甚至是更长的时间,我不敢想象老板那时的表情.时间的问题困

利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境

一.环境描述 安装有ansible的服务器:192.168.13.45 测试环境服务器:192.168.13.49 /home/app/api-tomcat/webapps/api.war为测试环境新版本war包位置 生产环境服务器:192.168.13.51 /home/app/api-tomcat/webapps/api.war为生产环境war包位置     /home/app/api-tomcat/webapps/api为生产环境项目位置 /home/app/tomcat.bak/api/

第二章 测试环境搭建(下)

2.3 模拟器管理 经过上面的环境配置,我们已经搭建起了一个Appium+Python安卓App的测试环境.不过要运行具体的app测试用例的时候,我们需要有运行环境,通常有模拟器和真机两种.在此我们先创建一个模拟器,检测一下我们的环境是否搭建成功. 新AVD模拟器 ?  启动我们安装的ADT中的eclipse,点击Eclipse软件的Windows菜单,选择其下的Android Virtual Device Manager菜单项,进入Android Virtual Device Manager其

selenium结合docker构建分布式测试环境

selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的人不再使用selenium RC了.大家使用的大多数是selenium-client,python版本的selenium-client最新版本是3.3.3(2017-04-04发布),却忽略了selenium server!事实上在大型的Grid分布式布局中必须要使用selenium server,

基于.net的微服务架构下的开发测试环境运维实践

眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全不像大家说的那样简单,大家是报喜不报忧,实在是水太深,谁做谁知道.今天就与大家分享一下在微服务架构+DevOps下,开发测试环境的一些运维痛点问题和解决方法. 架构的复杂度直接决定了运维的工作量,架构不是越复杂越好,而是适合最好.下面简单说说几种架构的优缺点.基于.net在搭建应用时,最常用的方法就

测试case自动化代码框架

这个是我在自动化case编写框架的经验总结,由于作者经验有限,如有错误,欢迎指正 另外我有代码示例,但是不知道怎么上传,好像不支持附件啊,我传到资源里了,找不到的同学也可以留言,我私下发给你 框架背景 在测试项目中,项目的版本会有很多,需要测试人员对每个版本进行尽可能详尽的测试.自动化case能够大大提高测试的效率,减少人为出错的可能,有益于项目质量的保证.随着项目规模的扩大,项目case的增多,测试case的编写困扰着测试人员,这篇文章就是为了解决这个问题. 框架优点 简单 重用代码 层次化