Jenkins

python+smtplib 发送测试报告到邮箱

ε祈祈猫儿з 提交于 2020-04-28 02:36:35
之前有介绍过怎样快速的搭建一个python测试框架 python+unittest 搭建简易的接口测试框架 这里介绍一下,怎样使用smtplib将测试报告发送到邮箱,这样使用jenkins定时巡检,执行用例,我们就等着收邮件看结果就ok啦 使用到的包如下: import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header 发送邮件分三步: 1、连接邮箱服务器,这里我使用的是qq邮箱 需要注意的是, 这里得密码不是qq密码 ,而是需要去qq邮箱设置一下,会生成一串登陆密码 2、定义邮件的内容,包括发送人、接收人、主题、附件等 3、发送邮件 smtp = smtplib.SMTP_SSL(smtpserver, 465 ) smtp.login(user, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() 上面工作完成之后,我们在jenkins中配置一下 例如设置成每2小时执行一次 然后就坐等收邮件啦 来源: oschina 链接: https://my.oschina.net/u/4382383

[Selenium+Java] Upload Selenium Script to GitHub

雨燕双飞 提交于 2020-04-27 21:43:10
Original URL: https://www.guru99.com/selenium-github.html Upload Selenium Script to GitHub Git Hub is a Collaboration platform. It is built on top of git. It allows you to keep both local and remote copies of your project. A project which you can publish it among your team members as they can use it and update it from there itself. Advantages of Using Git Hub For Selenium. When multiple people work on the same project they can update project details and inform other team members simultaneously. Jenkins can help us to regularly build the project from the remote repository this helps us to keep

python用httplib模块发送get和post请求***

ε祈祈猫儿з 提交于 2020-04-27 21:22:24
在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。 1、python发送GET请求 我在本地建立一个测试环境,python.php的内容就是输出一句话: <? php echo ' python httplib study! ' .PHP_EOL; var_dump($_POST); ?> python发送get请求代码: import httplib httpClient = None try : httpClient = httplib.HTTPConnection( ' localhost ' , 80 , timeout= 10 ) httpClient.request( ' GET ' , ' /python.php ' ) # response是HTTPResponse对象 response = httpClient.getresponse() print response.status print response.reason print response.read() except Exception, e: print e finally : if httpClient: httpClient.close() 上面代码中使用了finally来保证即使出错的时候也能关闭httpClient。运行这个程序

中小企业如何做运维自动化?

自古美人都是妖i 提交于 2020-04-27 17:22:56
不管大型还是中小型互联网公司,运维面对最多的工作就是发布部署,近些年各种运维自动化工具也越来越多,运维自动 化每个人都有一套自己的理解,那么中小公司一般都怎么做运维自动化呢? 我们先看一下中小企业面临的问题 : 人员有限,小一点的公司专业运维可能没有,开发自己上线,也有可能 1-2 个运维人员,基本不会投入专门的运维开发 来开发运维自动化平台。 服务器少,可能不超过 50 台服务器。 版本更新迭代比较快,需要快速方便的发布回滚。 中小企业运维自动化常见做法: Gitlab+Jenkins ,创建 Jenkins 任务,使用 Jenkins 登录服务器执行脚本实现发布,配合服务器多个脚本实现对服务器管 理。 Gitlab+Jenkins+Ansible ,使用 Jenkins 调用 Ansible 登录服务器执行脚本实现代码的发布,平时服务器管理使用 Anaibl e 进行服务器管理。 K8S 平台,使用 K8s 发布平台,打包应用 Docker 镜像,通过 K8s 发布到线上。 使用开源的运维自动化平台发布管理, Github 上有很多优秀的开源项目,可以使用。虽然可以通过上面的几种方法把发 布和经常操作的都实现自动化,但是避免不了登录服务器操作命令、配置任务计划,修改应用配置文件,配置服务器监控等。 那么有没有开源平台可以很方便的实现上面说到的这些功能呢

docker部署jenkins,生成sshkey

ぃ、小莉子 提交于 2020-04-27 14:32:06
1. 进入容器 docker exec -it jenkins /bin/bash 2. 在root下执行命令 ssh-keygen -t rsa 注意: 敲回车就好 3. 获取sshkey cat .ssh/id_rsa.pub 4. 将添加到git仓库 5. 首次获取代码,最好先使用命令,不然可能在jenkins管理界面显示key无效 git clone {代码仓库地址} 来源: oschina 链接: https://my.oschina.net/qbj/blog/4255181

Jenkins 与Docker/Kubernetes的自动化CI流水(笔记)

£可爱£侵袭症+ 提交于 2020-04-27 06:24:51
一、CI/CD 持续集成(continuous Integration,CI):代码合并、构建、部署、测试都在一起。不断执行这个过程,并对结果反馈。 持续部署(Continuous Deployment,CD): 部署到测试环境、预生产环境、生产环境。 持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用 CI/CD 的最终目的是自动化,减少人工干预,提高总体的产品交付质量。 非容器化的CI/CD常出现因为环境不一致导致各种问题。 Pipeline优势: 项目发布可视化,明确阶段,方便处理问题 一个Jenkinsfile文件管理整个项目生命周期 Jenkinsfile可以放到项目代码中版本管理 Jenkinsfile 文件就是指pipeline script的脚本保存的文件。在流水线中,可以使用pipeline脚本文件,处理文件比之前每个项目都点击按钮去修改配置要方便。 Jenkinsfile保持在仓库中,在Jenkins里面调用即可: Jenkins 与Docker/Kubernetes的自动化CI流水实践 下面内容是核心,有4个步骤:拉取代码-代码编译-打包成镜像推送到镜像仓库-部署 镜像仓库: 填写上需要构建的版本。 以上是docker单机的发布流程。 下面讲解,基于kubernetes的集群实现方案

基于 Jenkins Pipeline 自动化部署

我们两清 提交于 2020-04-27 05:30:32
最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置,也可以在每个项目中直接写Pipeline脚本,但像我那么优秀,那么追求极致的程序员来说,这些方案都打动不了我那颗骚动的心,下面我会跟你们讲讲我是如何通过Pipeline脚本实现自动化部署方案的,并且实现多分支构建,还实现了所有项目共享一个Pipeline脚本。 使用Jenkins前的一些设置 为了快速搭建Jenkins,我这里使用Docker安装运行Jenkins: $ sudo docker run -it -d \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ --name jenkins jenkinsci/blueocean 初次使用jenkins,进入Jenkins页面前,需要密码验证,我们需要进入docker容器查看密码: $ sudo docker exec -it jenkins /bin/bash $ vi /var/jenkins_home

kubernetes CICD

青春壹個敷衍的年華 提交于 2020-04-27 05:26:12
基于Jenkins 的CI/CD(一) 介绍 本文将讨论和探索两个令人惊奇和相当有趣的技术。一个是Jenkins,一个流行的持续集成/发布的工具,另一个是Kubernetes,一个流行的容器编排引擎。 持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,然而传统的 Jenkins Slave 一主多从方式会存在一些痛点,比如:主 Master 发生单点故障时,整个流程都不可用了;每个 Slave 的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是比较费劲;资源分配不均衡,有的 Slave 要运行的 job 出现排队等待,而有的 Slave 处于空闲状态;最后资源有浪费,每台 Slave 可能是实体机或者 VM,当 Slave 处于空闲状态时,也不会完全释放掉资源。 提到基于Kubernete的CI/CD,可以使用的工具有很多,比如Jenkins、Gitlab CI已经新兴的drone之类的,我们这里会使用大家最为熟悉的Jenins来做CI/CD的工具。 优点 Jenkins 安装完成了,接下来我们不用急着就去使用,我们要了解下在 Kubernetes 环境下面使用 Jenkins 有什么好处。 我们知道持续构建与发布是我们日常工作中必不可少的一个步骤

jenkins学习1-docker快速搭建jenkins环境

喜夏-厌秋 提交于 2020-04-27 03:00:38
前言 jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。 环境准备: linux服务器 docker docker运行jenkins 先下载jenkins镜像 https://hub.docker.com/r/jenkins/jenkins/tags ,选择lts的jenkins最新版本。 jenkins版本太低的话,很多插件安装不上,升级也很麻烦。 docker pull jenkins/jenkins:lts 新建jenkins用户的工作目录,注意这一步最好目录保持一致。 mkdir /home/jenkins 查看目录归属ID命令 ls -nd /home/jenkins ,这里查看ID是1000 [root@VM_0_2_centos home]# ls -nd /home/jenkins drwxr-xr-x 2 1000 1000 4096 Dec 29 15:58 /home/jenkins 给ID为1000的用户添加操作权限 chown -R 1000:1000 /home/jenkins 运行容器 docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home

jenkins插件学习之BuildUserVars和BuildNameDescriptionSetter插件

独自空忆成欢 提交于 2020-04-27 02:32:15
jenkins插件学习之BuildUserVars和BuildNameDescriptionSetter插件执行顺序 之前一直在使用 BuildUserVars 和 BuildNameDescriptionSetter 这2个插件, 通过 BuildUserVars 能够获取到是哪个人触发了构建.这个插件会设置个类似的环境变量 BUILD_USER. 然后 通过 BuildNameDescriptionSetter 插件 把这个环境变量 BUILD_USER 设置到 构建的 name 上. 方便一眼看出来构建历史中哪个构建是哪个人触发的/或者哪个构建是定时器触发的等等. BuildNameDescriptionSetter 插件有个 " Set build name before build starts " 和 " Set build name after build ends " 选项 发现 只有在 " Set build name after build ends " 的时候 才能获取到 BUILD_USER 这个变量. 为什么这样的??? 通过研究发现 是 因为 BuildUserVars 在 BuildNameDescriptionSetter 之后执行了. 执行顺序 类似 下面这样 ①先 BuildNameDescriptionSetter的 " Set build