自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 Selenium系列(二)对浏览器的常用操作

1、常用操作介绍几种对浏览器常用的操作:最大化、最小化浏览器控制、获取浏览器大小获取当前标签页title、url前进、后退、刷新执行js语句打开、关闭新的标签页滚动页面…2、代码实践最大化、最小化浏览器from selenium import webdriverimport time# 获取驱动driver = webdriver.Chrome("../chromedriver")# 访问网页driver.get("http://www.baidu.com")# 最

2022-05-02 23:39:16 688

原创 Selenium系列(一)插件安装以及元素定位详解

1、安装Selenium和下载chromedriver安装Seleniumpip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple下载chromedriver浏览器:http://npm.taobao.org/mirrors/chromedriver/找到自己Chrome对应的版本下载即可windows上建议调用Chrome()时指定chromedriver的路径,如果闲麻烦可以放到以下任意一个位置都能正常打开Chrom

2022-05-02 21:14:12 1818

原创 htpasswd命令详解

1、htpasswd介绍安装Nginx的源码提供了ngx_http_auth_basic_module这个模块,它可以来解决web访问认证的问题。这个模块是默认就编译进nginx的,可以直接拿来使用。ngx_http_auth_basic_module它提供了最基本的http认证,这是http协议支持的,它会弹出一个框让你输入用户名和密码,只有用户名和密码输入正确了才能访问,这样就能保证自己的web不被任何人所访问。ngx_http_auth_basic_module是使用文件作为存储介质的,用户名

2022-04-29 10:31:30 6939

原创 Linux使用docker部署gitlab

0、官方文档详细请参考官方文档:https://docs.gitlab.com/ee/install/docker.html1、拉取gitlab社区版gitlab-ee是企业版,我们拉取社区版gitlab-ce,命令如下:docker pull gitlab/gitlab-ce2、volumes挂载规划配置其他内容之前要配置一个环境变量$GITLAB_HOME,用来指定logs、config、data等持久化数据的存储路径export GITLAB_HOME=/srv/gitlab然后

2022-04-27 18:16:03 1895

原创 python往word文档中写入表格、段落、标题、图片...(超级全)

1、安装python-docx我们使用python-docx来操作word文档,首先是安装:pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple然后放两个参考文档:官方手册:https://python-docx.readthedocs.io/en/latest/index.htmlpypi官方地址:https://pypi.org/project/python-docx/2、使用步骤步骤1 导入docx

2022-04-19 11:56:13 24520

原创 python如何绘制柱状图

1、插件安装安装两种插件pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlibpip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy2、普通柱状图柱状图绘制步骤导入matplotlib.pyplot模块准备数据,可以使用numpy/pandas整理数据调用pyplot.bar()绘制柱状图上代码import numpy as npimp

2022-04-18 01:08:00 104543 4

原创 解决使用matplotlib.pyplot画图包含中文乱码显示问题(macbook上 family ‘sans-serif‘ not found 问题)

一、matplotlib画图中文乱码问题使用matplotlib.pyplot画图,有中文字体会显示乱码问题,这时需要添加如下代码:import matplotlib.pyplot as plt...plt.rcParams["font.sans-serif"] = ["SimHei"]...二、macbook没有SimHei的问题但是那之后,如果是macOs系统,又会出现另一个问题:findfont: Generic family 'sans-serif' not found becaus

2022-04-17 23:22:36 18277 25

原创 python通过PyYaml库操作yaml文件

1、YAML文件介绍YAML全称YAML Aint't a Markup Language(YAML不是一种标记语言),是一种易读的序列化语言通常应用在一些数据代码分离的场合,比如配置文件中2、Python读取、存储数据到YAMLpython的PyYaml模块是Python的YAML解析器和生成器读取YAML文件def read_yaml(): with open(path, "r", encoding="utf-8") as f: result = f.read()

2022-04-10 23:08:51 1454

原创 FastAPI(2)快速入门

1、安装FastAPI安装fastapi和unicorn模块,unicorn可以作为服务器pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simplepip install unicorn -i https://pypi.tuna.tsinghua.edu.cn/simple2、启动一个最简单的例子# filename: main.pyfrom fastapi import FastAPIapp = FastAPI()

2022-04-07 00:46:32 968

原创 Jenkins常见问题(1)解决构建完自动杀掉衍生进程问题

1、前言想要使用Jenkins自动拉取代码并自动启动,配置好后运行,发现程序总是无法正常启动,查看控制台信息,发现程序会杀死了2、原因查找资源才知道,Jenkins会在构建完成后自动杀掉衍生进程3、解决方案临时修改BUILD_ID在shell中,要执行的命令前 加一行BUILD_ID=DontKillMe,等号后面的内容可以换成其他,具体如下:BUILD_ID=DontKillMe./start.sh永久配置BUILD_ID值打开Manage Jenkins -> Config

2022-04-06 15:39:44 3110

原创 FastAPI(1) 简单介绍

1、前言最近用FastAPI编写了几个日常需要用的接口,又看到有大佬已经学完了,因此跟着大佬卷起来:小菠萝测试笔记-FastAPI2、简单介绍- 官网地址:https://fastapi.tiangolo.com/- FastAPI是什么FastAPI是一个Web框架(后续了解更多之后,待补充…)- FastAPI优点(照抄官网)类型检查、自动 swagger UI、支持 asyncio、强大的依赖注入系统围绕着框架本身的插件生态,比如 pydantic,sqlalchemy,成熟

2022-04-05 23:05:31 610

原创 pytest.ini配置文件详解【pytest系列 12】

1、pytest中的配置文件的作用pytest.ini pytest的主配置文件,可以改变pytest的默认行为,即pytest会读取该配置信息,然后按照指定的方式去运行conftest.py 测试用例的一些fixture配置__init.py__ 识别文件夹为package包2、pytest.ini的配置选项通过pytest --help可以查看如下内容[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file f

2022-04-05 22:24:25 1772

原创 重复执行用例插件pytest-repeat的详细使用【pytest系列 11】

1、前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶尔会出现一些bug,对于这种问题我们可以针对此用例反复执行多次,最终复现出问题来自动化运行用例的时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次2、环境要求Python2.7、3.4+或PyPypytest2.8 或者更高版本3、安装插件pip install pytest-repeat -i https://pypi.tuna.tsinghua.edu.cn/simple4、使用场景场景

2022-04-05 15:24:34 438

原创 失败重跑插件pytest-rerunfailures的详细使用【pytest系列 10】

1、环境要求需要满足以下条件才可以运行pytest-rerunfailures(未验证,不确定)Python 3.6 ~ 3.9 或者 PyPy3pytest 5.0 或者 更高版本2、安装插件pip install pytest-rerunfailures -i https://pypi.tuna.tsinghua.edu.cn/simple3、命令行或者装饰器的方式重新运行失败的用例方式一:命令行的方式要重新运行所有失败的用例,添加--reruns num参数,其中num表示最大

2022-04-05 00:07:45 1796

原创 向fixture传参数 request的详细使用【pytest系列 9】

1、前言为了提高复用性,我们在写测试用例的时候,会用到不同的fixture。比如:最常见的登录操作,大部分的用例的前置条件都是登录假设不同的用例登录的账号是不一样的,那么我们要如何向fixture传参,完成使用不同账号登录的操作2、案例一:传单个参数indirect=True参数是可以把下方代码中的login当成函数去执行,而不是一个参数,并且将data当作参数传入函数代码import pytest@pytest.fixture()def login(request): na

2022-04-04 16:07:43 828

原创 参数化@pytest.mark.parametrize【pytest系列 8】

1、pytest可以在多个地方定义参数化pytest.fixture fixture可以定义参数化pytest.mark.parametrize 可以让测试函数和类定义多组参数和fixturepytest_generate_tests 可以定义自定义参数化方案或扩展2、参数化场景测试数据和期望结果不一样,但是操作步骤都一样的测试用例可以使用参数化。举个例子:未参数化代码def test_01(): assert 3 + 5 == 9def test_02(): ass

2022-04-04 14:25:45 705

原创 使用自定义标记mark【pytest系列 6】

1、标记mark说明pytest支持自定义标记,自定义标记可以把一个web项目划分成多个模块,然后指定模块名执行再比如:我们可以指定哪些用例是windows下执行的,哪些用例是mac下执行的,然后在代码运行的时候指定mark即可2、代码演示# test_01.pyimport pytest@pytest.mark.weibodef test_weibo(): print("===正在测试微博===")@pytest.mark.toutiaodef test_toutia

2022-04-02 09:57:36 310

原创 conftest.py详解(如何组织测试用例)【pytest系列 5】

1、简单说明conftest.pyconftest.py 可以理解为专门放fixture的地方,conftest.py可以用来单独管理全局的fixturepytest会默认读取conftest.py里面的所有fixture,测试用例文件中不需要手动import conftest.py使用场景:多个测试文件test_*.py都会用到登录功能作为前置操作,如果单独写到用例文件中去,那就要写多次。这时放在conftest.py中,可以让所有测试文件直接使用conftest.py 文件名是固定的,不能更改

2022-04-01 23:38:36 1353

原创 fixture使用详解【pytest系列 4】

1、前言setup和teardown可以实现用例执行前和执行后加入一些操作,但是这种操作是全局的生效的有一些操作,我们只想要做用在部分用例上,这时可以使用fixture来自定义前置操作2、fixture参数列表@pytest.fixture(scope="function", params=None, autouse=False, ids=None, name=None)def login(): print("this is login")参数列表:scope: 默认function

2022-03-31 22:15:59 1684

原创 setup和teardown详解【pytest系列 3】

1、pytest中的前置处理和后置处理模块级别setup_module 整个.py模块开始执行前,执行一次(全程只一次)teardown_module 整个.py模块结束后,执行一次(全程只一次)函数级别setup_function 每次函数级别的用例执行前,执行一次(可能多次)teardown_function 每次函数级别的用例执行后,执行一次(可能多次)类级别setup_class 整个测试类开始前,执行一次(全程只一次)teardown_function 整个测试类

2022-03-31 16:15:32 823

原创 pytest的断言assert、assume【pytest系列 2】

一、前言pytest一般使用python自带的assert关键字进行断言assume 是pytest断言的另一种方式,两者的区别在于:assert 出现断言失败,则后续断言不再执行assume 如果出现断言失败的情况,会继续执行该断言后续的语句及断言二、assert断言说明assert是python自带的,可以直接使用。assert关键字后面可以接一个表达式,只要表达式最终结果为True,那么断言通过,用例执行成功,否则用例执行失败。如果有多个断言,并且某个断言失败后,后续的代码

2022-03-31 14:54:20 4673 1

原创 pytest安装与简单使用【pytest系列 1】

1、安装pytest命令行中运行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest查看版本pytest --version2、pytest执行文件的规则如果未指定执行的文件pytest:会查找当前目录及其子目录下test_*.py 或 *_test.py文件,然后再查找文件中的test开头的函数进行执行如果指定某个文件,则只会执行那个文件中的用例:pytest demo.py3、pytest用例设计规则设

2022-03-31 12:09:55 947

原创 eureka如何剔除和恢复某个服务

今天,测试过程中,测试环境中被陌生的服务注册,导致服务没法正常访问,如何将其下线该服务1、浏览器上访问eureka服务地址为192.168.171.105:18000,如图,假设图中GAIA-EMPLOYEE中的192.168.171.58:gaia-employee:21100是我们要剔除的服务2、使用postman剔除服务postman上配置如下url:http://root:gaia_test@192.168.171.105:18000/eureka/apps/GAIA-EM.

2022-03-30 16:43:03 2946 1

原创 使用docker部署一个SVN

1、前提安装好docker:详见这篇文章安装好docker-compose:详见这篇文章拉取镜像:docker pull garethflowers/svn-server2、安装SVN宿主机上新建目录做数据持久化:mkdir -p /Users/chenbinhao/svn/repo新建文件docker-compose.yml,命令为vi /Users/chenbinhao/svn/docker-compose.ymlvolumes 容器中/var/opt/svn为存放数据的位置po

2022-03-18 00:23:56 1731

原创 Linux如何更换Jenkins工作空间

由于Jenkins启动时未指定工作空间,因此默认存储在/root/.jenkins中,时间较长或者项目较多很容易将系统盘占满。所以我们现在要将Jenkins的工作空间由/root/.jenkins更换到/home/.jenkins中1、停止运行Jenkins直接在url后面添加exit,以我本地为例为:192.168.171.59:8080/exit2、移动工作空间命令:cp /root/.jenkins -r /home/3、配置JENKINS_HOME# 编辑.bash_prof.

2022-03-16 14:30:39 2797

原创 命令行中创建Python虚拟环境virtualenv

一、虚拟环境目的创建虚拟环境是为了让项目运行在一个独立的Python环境中,让不同项目不会因为环境、依赖包版本问题互相影响二、安装步骤1、安装虚拟环境第三方包virtualenv命令:pip3 install virtualenv使用清华源安装:pip3 install virtualenv -i https://pypi.tuna.tsinghuaedu.cn/simple2、创建虚拟环境进入想要存储虚拟环境的位置,然后使用命令进行创建:virtualenv ENV,ENV表示环境名称

2022-03-10 12:53:29 1143

原创 Linux中如何安装python3.9.5

背景原本Linux系统上已经安装了python3.6,因为版本太低,需要升级到python3.9安装python3.9.5从官网:https://www.python.org/downloads/ 找到合适的版本,使用命令wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz下载到linux中,然后解压缩tar -zxvf Python-3.9.5.tgz,然后进入该文件cd Python-3.9.5/安装依赖包yum -y in

2022-03-10 12:31:05 1170

原创 解决FastApi调用接口导出excel文件无法打开问题(添加Content-Type)

遇到问题用FastApi开发一个接口,导出一个excel文件,接口通过http://127.0.0.1/docs调用接口并下载excel文件,文件无法打开代码import fastapi import FastApiimport starlette.responses import FileResponseapp = FastApi()@app.get("/File")async def get_file(): filepath = "./data/demo.xlsx" filenam

2022-03-10 09:51:25 3992

原创 python使用xlsxwriter模块在excel中绘制表格

1、安装xlsxwriter模块使用pip install XlsxWriter命令进行安装2、使用xlsxwriter模块import xlsxwriter# 创建文件wb = xlsxwriter.Workbook("demo.xlsx")# 创建sheet页ws = wb.add_worksheet("sheet-1")# 往表格中写入数据ws.writer("A1", "hello, world")wb.close()3、常用用法写入单个单元格用write,可以使用A

2022-03-07 11:19:41 1247

原创 macbook上python如何连接oracle

1、下载oracle客户端,oracle客户端的地址:instant-client2、创建文件夹/opt/oracle ,将下载的文件拷贝到此处,并解压缩sudo mkdir /opt/oracle3、用户目录中创建lib文件夹,并配置软链接,命令如下mkdir ~/libln -s /opt/oracle/instantclient_12_2/libclntsh.dylib ~/lib/4、pip安装cx-Oraclepip install cx-Oracle -i https://p

2022-03-04 11:22:59 919

原创 linux中如何通过docker安装oracle12c

1、下载镜像docker pull docker.io/truevoly/oracle-12c2、运行镜像(1)创建挂载点mkdir /data/oracle/data_temp && chmod 777 /data/oracle/data_temp(2)运行镜像docker run --restart always -d -p 8080:8080 -p 1521:1521 -v -v /data/oracle/data_temp:/home/oracle/data_temp

2022-02-17 14:09:17 847

原创 Mac中切换不同版本的jdk

1、如何查看本机已经安装的jdk$ cd /Library/Java/JavaVirtualMachines/$ ls -ltotal 0drwxr-xr-x 3 root wheel 96 2 8 14:25 jdk-11.0.14.jdkdrwxr-xr-x 3 root wheel 96 10 5 07:48 jdk-17.jdk2、编辑.bash_profile编辑$ vi ~/.bash_profile在文件末尾添加如下代码export JAVA_11_H

2022-02-08 15:24:47 876

原创 IntelliJ IDEA上运行HelloWorld

1、创建一个新的项目2、我们要开始一个Java项目,选择Java SDK因为我的IDEA版本比较低,因此选择版本11,否则后面无法运行成功。具体可参考:Error:Cannot determine path to ‘tools.jar‘ library for 17解决方案3、一直Next直到最后,填写项目名称,点击Finish4、在src文件夹中新建一个Java Class,输入类名,回车src是用来存放源代码的文件5、编写代码package demo;public

2022-02-08 15:00:31 1057 1

原创 pip安装依赖包

列出已经安装的包pip list导出requirements.txtpip freeze > requirements.txt安装依赖包pip install <package>或者pip install -r requirements.txt卸载依赖包pip uninstall <package>或者pip uninstall -r requirements.txt 显示包所在的目录pip show -f <package>

2022-02-08 09:53:41 1128

转载 sqlmap使用详解

一、sqlmap基本使用1、判断是否存在注入(1) 当检测参数为一个的时候:python2 sqlmap.py -u http://localhost/sqli-master/Less-1/?id=1(2)当参数大于等于两个时,需要加双引号:python2 sqlmap.py -u "http://localhost/sqli-master/Less-1/?id=1&uid=3"(3)当测试的位置是cookie或者post传值等位置时,需将获得流量包保存在txt文件中进行测试:python

2022-01-27 16:11:23 327

原创 如何启动oracle实例及监听

启动oracle需要同时启动oracle实例以及监听器1 如何启动oracle实例切换用户:su - oracle设置启动实例:export ORACLE_SID=orcl ,orcl为你要启动的实例的名称连接:sqlplus / as sysdba启动:startup,如果要关闭则用shutdown immediate退出:exit2 如何启动监听器启动:lsnrctl start停止:lsnrctl stop查看状态:lsnrctl status ,如果查看到的状态为UNK.

2022-01-21 15:50:12 5048

原创 kubernetes网络之calico-node显示running,但是not ready

问题复现[root@k8s-master kubernetes]# kubectl get pod -n kube-system -owideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScalico-kube-controllers-647d84984b-v4cn

2021-12-23 16:27:08 2265 2

原创 k8s加入集群之获取token和sha256

1 获取或生成token1.1 查看token命令:kubeadm token list[root@k8s-master /]# kubeadm token listTOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPSjg2shz.spsj

2021-12-14 11:27:50 2875

原创 centos7部署k8s集群

1 版本、规划1.1 版本信息:名称版本号内核3.10.0-1160.el7.x86_64操作系统CentOS Linux release 7.9.2009 (Core)docker20.10.11kubeadm1.23.0kubelet1.23.0kubectl1.23.01.2 集群规划IPhostname192.168.0.114k8s-master192.168.0.115k8s-node01

2021-12-14 00:53:02 1113

原创 Dockerfile配置详解

暂无

2021-12-07 11:47:24 2719

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除