linux系统下部署python自动化程序并配置Jenkins并定时执行

简介: 自动化测试脚本代码部署到服务器上,Jenkins定时执行脚本,发送邮件

问题:

自动化测试脚本代码咱已经有了,参考Python接口自动化框架,那么该如何部署到我们的服务器上,在服务器上定时自动执行呢?

思路:

首先,我们要统一环境,大家知道,python2和python3的语法和库有很多改动,而大多服务器自带的python版本还是2,所以我们要把服务器的环境配置改为和我们本地配置尽量完全相同,避免版本造成的影响;环境配置之后,下一步就是依赖,可以设置成执行代码时自动下载,否则没有依赖也是会执行失败的;如果代码执行成功,就可以进行最后一步,设置定时任务,定时执行脚本,或者通过Jenkins定时部署,达到我们想要的效果。

-- 记录一下过程中遇到的坑

环境配置

Python环境

安装python3的版本,安装方式有很多,可以自行选择,官方文档

准备python的编译环境

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

下载指定版本的python源码

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

安装编译python3

cd Python-3.6.2
mkdir /usr/local/python3.6
./configure --prefix=/usr/local/python3.6
make
make install
# 建立软链接
ln -s /usr/local/python3.6/bin/python3.6  /usr/bin/python3
# 查看新的版本
python3 -V  # 这里是兼容python2的,所以一定要带这个3,如果不带就还是用的python2

更新pip3

# 下载
wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
# 解压
tar -zxvf setuptools-19.6.tar.gz
# 编译、安装
 cd setuptools-19.6/
python3 setup.py build
python3 setup.py install
# 建立软链接
 ln -s /usr/local/python3.6/bin/pip3 /usr/bin/pip3
 # 更新pip3
 pip3 install --upgrade pip

下载依赖

首先在pycharm项目的控制台中执行以下命令,将我们python环境的依赖生成一个文档,会有一些此项目不需要的依赖,按照情况删除即可

pip freeze>requirements.txt #本地下载所以没用pip3

在这里插入图片描述
将程序打包上传到服务器,在目录下可以看到上面生成的这个文件,执行命令安装依赖

pip3 install -r requirements.txt

遇到问题与解决方案

  1. 我在安装的时候遇到一些依赖版本不对应的情况(xlrd),可能是自带的或者手动下载时没带版本号,导致部分代码执行报错,所以有时候需要卸载和安装指定版本的依赖

    方案:卸载xlrd,安装实际需要的版本,参考xlrd使用问题

    # 卸载
    pip3 uninstall xlrd
    # 安装
    pip3 install xlrd==1.2.0
  2. import导包时找不到自定义模块,参考: python环境import找不到自定义的模块(如果有更好的方案欢迎评论交流)
    方案:修改环境变量 ,所有文件都可以引入/usr/server/下的模块vi /etc/profile

    export PYTHONPATH=$PYTHONPATH:/usr/server/ # 加在后面
    source /etc/profile # 刷新配置

准备完毕,测试一下,执行成功

python3 auto_test.py

在这里插入图片描述

定时执行

程序在服务器上可以正常运行,那么接下来只需要配置到我们的Jenkins上面就可以实现目标啦!

我本来想的是不需要维护用例,就直接创建定时任务每日执行就可以了,但是遇到了另外一个问题没有解决,所以就用Jenkins部署了(Linux自带的cron定时任务,时间是只到分钟的,没有秒!!!执行脚本的时候老是找不到依赖,明明服务器已经装好了,(;′⌒`))对定时任务感兴趣的可以参考:CentOS7安装定时任务

定时任务

还是大概讲一下,定时任务的使用参照上文

*  * * * * echo "this is a crontab" >> /usr/servers/run1.txt
50 15 * * *  pip3 install -r /var/lib/jenkins/workspace/auto_api/requirements.txt >> /usr/servers/run.txt
0 16 * * * /root/training/Python-3.6.5/bin/python3 /usr/servers/auto_api/case/test_login.py >> /usr/servers/python.txt

由于定时任务直接执行脚本会找不到依赖包(服务器有,但是定时任务就不行),所以加了定时任务先下载依赖,目前这个方案没跑通

Jenkins部署

Jenkins安装传送门:linux下jenkins安装及配置

新建一个项目,配置如下,由于是本机的,只需要执行代码就可以了,配置比较简单,可以设置定时运行等

在这里插入图片描述

首次执行依然是找不到依赖包的问题,所以加了下载依赖的步骤,后面再执行就不需要了

在这里插入图片描述

构建成功

在这里插入图片描述

在这里插入图片描述

  • [ ] ps:git项目配置会相对麻烦一些,后面也会操作一下,留下教程,待更新!!!
相关文章
|
1天前
|
监控 JavaScript Linux
Linux系统之部署Homepage个人导航页
【5月更文挑战第13天】Linux系统之部署Homepage个人导航页
16 1
|
2天前
|
监控 JavaScript 网络协议
Linux系统之安装uptime-kuma服务器监控面板
【5月更文挑战第12天】Linux系统之安装uptime-kuma服务器监控面板
13 0
|
2天前
|
前端开发 Java 测试技术
selenium+python自动化测试--登录
selenium+python自动化测试--登录
12 2
|
2天前
|
Python
Python自动化办公实战案例:文件整理与邮件发送
Python自动化办公实战案例:文件整理与邮件发送
8 0
|
2天前
|
存储 人工智能 测试技术
python自动化测试实战 —— CSDN的Web页面自动化测试
python自动化测试实战 —— CSDN的Web页面自动化测试
194 0
|
2天前
|
Web App开发 设计模式 测试技术
python自动化测试实战 —— 自动化测试框架的实例
python自动化测试实战 —— 自动化测试框架的实例
15 0
|
2天前
|
监控 数据可视化 IDE
python自动化测试实战 —— 单元测试框架
python自动化测试实战 —— 单元测试框架
17 2
|
2天前
|
Web App开发 JavaScript 测试技术
python自动化测试实战 —— WebDriver API的使用
python自动化测试实战 —— WebDriver API的使用
8 1
|
2天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
195 2
|
22小时前
|
存储 Linux Shell
YUM管理器的命令列表-Linux
YUM管理器的命令列表-Linux
7 0