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

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

问题:

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

思路:

首先,我们要统一环境,大家知道,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项目配置会相对麻烦一些,后面也会操作一下,留下教程,待更新!!!
相关文章
|
3月前
|
人工智能 Linux 开发工具
Python从零到一:手把手带你写出第一个实用程序
Python语法简洁易懂,适合编程新手入门。它广泛应用于人工智能、自动化办公、Web开发等领域。学习Python可快速搭建项目,拥有丰富库支持和强大社区资源。通过本教程,你将掌握基础语法、环境搭建、程序逻辑控制及实战项目开发,开启编程之旅。
372 0
|
2月前
|
设计模式 决策智能 Python
Python条件控制:让程序学会"思考"的魔法
本文深入浅出地讲解Python条件控制,从基础if语句到多分支、嵌套结构,再到简洁的三元表达式与Python 3.10新增的match-case模式匹配,结合电商折扣、会员等级、ATM系统等实战案例,全面掌握程序“智能决策”的核心逻辑。
396 0
|
6月前
|
人工智能 并行计算 开发者
CUDA重大更新:原生Python可直接编写高性能GPU程序
NVIDIA在2025年GTC大会上宣布CUDA并行计算平台正式支持原生Python编程,消除了Python开发者进入GPU加速领域的技术壁垒。这一突破通过重新设计CUDA开发模型,引入CUDA Core、cuPyNumeric、NVMath Python等核心组件,实现了Python与GPU加速的深度集成。开发者可直接用Python语法进行高性能并行计算,显著降低门槛,扩展CUDA生态,推动人工智能、科学计算等领域创新。此更新标志着CUDA向更包容的语言生态系统转型,未来还将支持Rust、Julia等语言。
491 3
CUDA重大更新:原生Python可直接编写高性能GPU程序
|
5月前
|
PyTorch 算法框架/工具 C++
人工智能算法python程序运行环境安装步骤整理
本教程详细介绍Python与AI开发环境的配置步骤,涵盖软件下载、VS2017安装、Anaconda配置、PyCharm设置及组件安装等内容,适用于Windows系统,助你快速搭建开发环境。
|
4月前
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题
|
5月前
|
机器学习/深度学习 前端开发 API
python3如何使用QT编写基础的对话框程序
Qt与Python结合形成了PyQt/PySide,为桌面应用开发提供强大支持。通过简单安装PyQt5或PySide6,开发者可快速搭建跨平台GUI应用。本文从创建基础对话框入手,介绍布局管理、信号与槽机制、对话框模式及样式表美化等核心功能,并探讨模态窗口、事件驱动编程和资源打包等内容。最后,引导读者探索模型视图架构、多线程处理等进阶技术,逐步掌握用Python+Qt开发高效桌面应用的技能。
187 0
|
Ubuntu Oracle jenkins
Linux-安装 jenkins
Jenkins 是什么? Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
414 0
Linux-安装 jenkins
|
Java jenkins Linux
Linux安装Jenkins(Java11最新版)
Linux安装Jenkins(Java11最新版)
Linux安装Jenkins(Java11最新版)
|
监控 jenkins Java
linux安装jenkins
Jenkins 是什么?Jenkins 是一个可扩展的持续集成引擎。主要用于:持续、自动地构建/测试软件项目。监控一些定时执行的任务。Jenkins 拥有的特性包括:易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。易于配置-所有配置都是通过其提供的web界面实现。集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。生成JUnit/TestNG测试报告。
458 0
linux安装jenkins