8. 接入到Jenkins
先建立node如 名称Pytest_服务器ip
再建立job job关联node名称
Jenkins - New Item
7. pytest_allure自动化框架环境搭建方法
一、代码开发机器安装python3.6版本,pytest框架要求使用python3版本
1: 直接使用服务器配置的yum源安装python3.6版本:yum -y install python36,缺点是本机yum源下载速度慢。
2: 如果服务器是联网的,可以下载使用阿里的yum源,优点是下载速度快
(1)下载阿里yum源
wget http://mirrors.aliyun.com/repo/Centos-7.repo
(2)备份环境自带的yum源
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
(3)设置使用新下载的yum源
mv Centos-7.repo /etc/yum.repos.d/; yum clean all; yum repolist
(4)设置使用域名解析服务器
修改/etc/resolv.conf配置文件,修改后配置文件的内容如下:
nameserver 10.96.1.18
(5)使用阿里yum源安装python3.6版本
yum -y install python36
二、安装框架所需的python包
将包统一放进requirements.txt,统一安装:
pip3 install -r requirements.txt -i Simple Index --trusted-host pypi.douban.com
这里使用豆瓣的pip源,可以大大提高python软件包的下载安装速度。
requirements.txt内容如下:
jsonpath~=0.82
DingtalkChatbot~=1.5.3
PyYAML~=5.4.1
requests~=2.25.1
pytest~=7.1.2
allure-pytest~=2.9.45
SQLAlchemy~=1.4.39
pymongo~=4.1.1
paramiko~=2.7.2
prettytable~=0.7.2
bottle~=0.12.19
xlrd~=1.2.0
PyMySQL~=1.0.2
crypto~=1.4.1
pycryptodome~=3.15.0
concurrent_log_handler~=0.9.20
matplotlib~=3.3.4
如果存在安装失败的python包,可以升级pip3的版本:pip3 install --upgrade pip,然后单独安装第一次安装失败的python包。如果没有pytest~=7.1.2 如提示的最高版本是7.0.2则修改配置文件为pytest~=7.0.2
三、服务器配置httpd服务,用于展示allure报告
1、下载安装httpd文件服务器:yum install httpd
2、服务器配置httpd服务
配置方法链接:CentOS7安装配置httpd文件服务器 - 码农教程
注意:我们这里的httpd服务配置的目标路径是根目录’/’,和框架allure报告配置的展示路径对齐
四、安装java1.8,allure命令行的执行需要java环境
yum install java-1.8.0-openjdk -y
如果服务器已经配置了java,则不需要安装
五、安装allure-commandline2.14.0+
1、下载地址: Central Repository: io/qameta/allure/allure-commandline
2、安装配置allure-commandline
(1) 上传allure-commandline-2.13.1.zip上传到服务器的/opt目录下
(2) 解压unzip allure-commandline-2.14.0.zip
(3) 配置环境变量
将解压后allure下bin目录的路径/opt/allure-2.14.0/bin配置进环境变量
vim /root/.bashrc
在PATH后追加以下内容,保存
PATH=$PATH:/opt/allure-2.14.0/bin
export PATH
(4) 使环境变量生效
source /root/.bashrc
(5) 验证
在命令行输入allure --version,能出现版本说明allure命令行已经安装成功了
六、安装git
yum install git
安装完毕,配置git 见我自己写的博客
6. centos7启动httpd命令有两个可以用
service httpd start
systemctl start httpd.service
如果出现如下报错
Job for httpd.service failed because the control process exited with error code. See “systemctl status httpd.service” and “journalctl -xe” for details.
应该是端口被占用,查看端口
netstat -antlp | grep 80
是nginx占用了端口
systemctl stop nginx.service 停用nginx即可
如果想开机关闭nginx则输入命令 systemctl disable nginx
其中:listen后面的端口号改为你自己需要的端口号,server_name改为你自己的外网ip。server_name默认为localhost即127.0.0.1。
修改完配置文件后重启nginx:/usr/local/nginx/nginx -s reload.我的nginx是安装在/usr/local/目录下,根据你自己nginx的安装目录重启你的服务器。
5. git 本地仓库关联新的远程仓库
1. 删除已关联的远程仓库
$ git remote rm origin
2. 关联新的远程仓库
$ git remote add origin http://localhost:3000/huangweizhi/jqwlscan.git
3. 推送本地分支
$ git push -u origin master
4. 查看git远程关联的仓库
git remote -v // 查看本地已经关联的远程仓库
git remote rm name // # 删除远程仓库
git remote rename old_name new_name // # 修改仓库名
git remote add name 远程仓库地址 // name 为要取的仓库名字 远程仓库地址 为要关联的远程仓库地址
3. token鉴权 Authorization
def auth():
logging.info("get token before send request")
token = get_hce_token()
# print('------token-----',token)
logging.info("token: {}".format(token))
# 20220815 Authorization 值中Bearer空格加token值在python接口请求中如何实现
Authorization = "Bearer " + token
request_headers = {"Content-Type": "application/json",
"Accept": "application/json, text/plain, */*",
"Authorization": Authorization
}
# request_headers.update(request_headers)
# token['content-type'] = 'application/json'
print('------request_headers------', request_headers)
print('------request_headers_type------', type(request_headers))
# print('------header------', header)
return request_headers
2. YAML在线格式化
1. 如遇
from libs.file_operate.read_conf import setting
ModuleNotFoundError: No module named 'libs'
解决办法:添加如下内容
import sys
sys.path.append('.')
有时候,自己在运行代码时,明明pycharm上在引用包时,系统可以正常识别到包,运行也一切正常。但是到终端去运行代码就会报错,发现无法正常引用自己编写的包了。详细解释可以看这一篇sys详解
python就会在你的当前运行目录下搜索对应的包,自己编写的模块就能顺利引用了。注意:sys.path.append('.')这段代码要添加在自己引用包的代码之前,不然也会出错