如何在jenkins容器中安装python+httprunner+pytest+git+allure(一)

背景:

API接口自动化使用python语言实现,利用httprunner框架编写自动化用例场景(执行的时候还是依赖pytest),使用jenkins自动构建git上的源代码,并产生allure报告可视化展示API执行结果。

步骤

1.进入jenkins容器

注意使用root身份进入容器

docker exec -it -uroot jenkins bash

2、具体安装步骤

复制代码
## 见上篇

 https://blog.csdn.net/dghrty_show/article/details/134445662?spm=1001.2014.3001.5502

3、验证python安装是否成功

4、安装过程中遇到的问题

bash 复制代码
##编译python执行make时,遇到如下报错导致未编译成功,报错这个会导致pip3无法使用,所以必须要解决这个
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [Makefile:1102: install] Error 1
#问题原因
当前路径下缺少zlib相关依赖包
#解决办法
     cd ~
     apt-get install zlib
 # #一定要回到python的安装路径下,/opt/py3.6次编译
     cd /opt/py3.6/
      make
      make install
bash 复制代码
##问题:执行shell脚本时,使用pytest -s -q testcases/ --alluredir=reports/ --clean-alluredir时进行jenkins构建一直报错
/tmp/jenkins138024061767095240.sh: line 3: pytest: command not found
##解决办法:
python3 -m pytest -s -q testcases/ --alluredir=reports/ --clean-alluredir
##原因:
1执行shell脚本的时候报找不到pytest命令,但是自己的库里其实已经通过pip安装了pytest,执行pip list也是可以查询到pytest的版本信息
2本来想通过设置环境变量解决,但是最终失败(如下设置)
cat  ~/.bash_profile
验证是否添加成功echo $PATH
3最终原因是:我自己通过pip去安装的pytest 并不会使其成为系统命令,所以需要通过:python -m  pytest 命令执行,使其成为系统命令
bash 复制代码
问题:在jenkins容器内安装了pytest但是就找不到pytest在哪里?
1使用whereis/which pytest无法找到
2使用 pip3 show pytest
root@localhost:/# pip3 show pytest
Name: pytest
Version: 5.4.3
Summary: pytest: simple powerful testing with Python
Home-page: https://docs.pytest.org/en/latest/
Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
Author-email: 
License: MIT license
Location: /usr/local/src/py3.6/lib/python3.6/site-packages
Requires: attrs, importlib-metadata, more-itertools, packaging, pluggy, py, wcwidth
Required-by: allure-pytest, httprunner, pytest-html, pytest-metadata

其实在jenkins中安装python后,安装的各种插件都是在py3.6/lib/python3.6/site-packages下的

相关推荐
IVEN_5 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang6 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮6 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling6 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮10 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽10 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健1 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽1 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers