- 博客(87)
- 收藏
- 关注
原创 docker 日志时间
dockerlogs容器名查看的日志总比宿主机的日志相差8小时,感觉是因为时区不对的原因首先查看下容器的时间,发现容器内系统时间是正确的,但是日志时间还是错误的version: "3"services: sh-user-center: container_name: sh-user-center restart: always image: xxx.xxx.xxx.xxx/test/sh-user-center:v1 network_mode: ...
2022-05-07 10:10:45
2496
原创 Ambari 自动部署 Hadoop
首先需要下载:HDP-UTL,ambari , HPD第一步配置环境:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6XXX.XXX.XXX.XXX daniel.cluster.comXXX.XXX.XXX.XXX vm1.
2022-04-16 17:35:01
4492
原创 jenkins搭建和配置
现在的部署,基本都是自动化部署下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.204.2-1.1.noarch.rpm由于jenkins是java开发的,所以要配置java环境,一般java开发都的内存都需要大一点yum install java-1.8.0-openjdk*vi /etc/profileAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-
2022-03-04 11:24:30
837
原创 HttpRunner学习总结—hook(setup,teardown)
setup_hooks:开始执行前出发的hook函数,主要用于准备工作teardown_hooks:结束执行后出发hook函数,主要用于测试后的清理工作首选在debugtalk.py中把方法写好,写最简单的demo 就行,打印文字def up(): print('----开始执行啦----')def down(): print('----结束执行啦----')在API层调用name: test hook demobase_url: ${ENV(base_ur
2022-02-19 17:08:44
820
原创 istio:灰度发布与AB测试
灰度发布只让一部分用户继续使用老版本,一部分用户开始用新版本,如果用户对新版本没有什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上面来优点:保证整体系统稳定性用户无感知,平滑过渡缺点:自动化要求高A/B测试灰度发布的另一种方式,主要对特定用户采样后,对采集的反馈数据做相关对比,然后根据对比结果做出决策。用来测试应用功能表现的方法,侧重应用的可用性,受欢迎程度等,最后决定是否升级istio实现灰度发布用户的请求由gateway转发到虚拟服务(virt...
2022-02-12 15:28:58
1708
原创 Unable to find security driver for model selinux
启动域时出错: 不支持的配置:Unable to find security driver for model selinux其实这个问题很好解决只要进到这台虚拟机的配置文件下,默认路径是/etc/libvirt/qemu/下把这行删除了就可以,我看了一下其他虚拟机的配置文件都没有这个,就直接删除了virsh define ./soanrqube.xml 使用这个命令将配置文件重新定义一下,虚拟机就可以正常启动了如果想迁移虚拟机的存储路径也可以关机,修改配置文件下的存储路径,并将
2022-01-27 16:30:52
1169
1
原创 脚本安装(nginx,mysql,openjdk)
nginx:首先需要下载wget http://nginx.org/download/nginx-1.18.0.tar.gz #下载到root目录下vim nginx.shchmod +x nginx.sh#!/bin/bash#编译安装Nginxnginx_install(){#创建软件运行用户`id www` &> /dev/nullif [ $? -ne 0 ];then useradd -s /sbin/nologin -M wwwfi#安..
2022-01-21 21:35:40
152
原创 HttpRunner学习总结—TestSuite 参数化(parameterze及debugtalk.py)
HttpRunner的参数化 通常有三种1.在YAML/JSON中指定参数:适合参数列表比较小的情况,好处是简单2.内置parameterze 函数引用CSV文件:适合数据量较大的情况,需提前准备CSV文件3.调用debugtalk.py
2022-01-15 12:53:33
846
原创 HttpRunner学习总结—TestSuite 登录demo
TestSuite 其实就是用例的无序集合把一堆有效无效的用例放在一起,然后去执行存在一个登录成功的用例,然后去断言config:# 用例名称 name: 输入正确的账号密码 登录成功 base_url: ${ENV(base_url)} output: - gettokenteststeps: # 测试步骤- name: 测试步骤:login api: api/gettoken.yml # 使用关键字api来调用api层内容.
2022-01-07 11:29:08
1710
原创 HttpRunner学习总结—output变量传递
单个testcase中可以引用多个api 那在不同的testcase中传递变量可以用到output存在2个api 一个是登录获取token,一个是存入token获取信息一下使用这2个token进行测试config:# 用例名称 name: 登录成功后,获取主体页面 variables: username: xxx base_url: ${ENV(base_url)} #为了把变量暴露出来,打印日志时看的更清楚 output: .
2021-11-25 23:02:18
408
原创 HttpRunner学习总结—辅助函数生成随机数
有些场景需要多次执行,但是数据只能使用一次为了解决这些问题,思考解决思路是1.每次生成新的数据,比如加上时间戳2.连接数据库,删除原来的数据这个各自都有优缺点,先说第一个方法吧先写个简单的api执行下即可通过,这里只检测代码的正确 没检测业务的准确性然后开始写用力,在testcasses 中写测试用例config: name: 注册用例teststeps:- name: 注册成功 api: api/49.yml variables:.
2021-11-20 19:36:30
664
原创 HttpRunner学习总结—config
通常一个用例中的结构包含 config:公共配置 及 teststeps:测试步骤config中的变量在config中定义了变量 则在测试步骤中不需要在定义了 当然参数名称不一样不可省略config 中的变量针对整个yml文件 teststeps中则针对这个步骤备注:如果2个地方均定义了变量 则取config中的参数 这个和正常的理解不一样,不会被覆盖config:# 用例名称 name: 登录成功后,获取主体页面 variables: usern..
2021-11-12 18:23:18
1762
原创 jmeter实现带RSA的sign签名
实现开放接口 我们通常需要根据参数 及开发提供的密钥 生成一个签名在根据解签签证成功后 请求接口接口名称:/api-open-center/open/gateway请求方式:post参数类型:form-data根据正常的添加线程添加http请求设置好添加默认线程组在添加一个http请求,设置好url及参数及请求方式,请求类型再添加http请求头 比如说Content-Type参数之类的头部参数由于我们需要的签名需要根据参数生成,所以我们需要加一个BeanShel...
2021-10-29 18:56:41
979
1
原创 postman实现请求带签名(sign RSA)
实现开放接口 我们通常需要根据参数 及开发提供的密钥 生成一个签名在根据解签签证成功后 请求接口存在一下一个接口 需要用postman 获取签名 并且请求接口名称:/api-open-center/open/gateway请求方式:post参数类型:form-data(其实json也是一样的)根据常用的请求方式设置后({{XXX}}是获取变量参数)类似api_request_id,timestamp参数都是实时获取的 ,此时我们就要实现预处理在pre-reques...
2021-10-24 16:57:19
7755
原创 python 实现RSA签名
在这之前 记得用pip install 安装几个包:Crypto,base64, 反正环境缺什么就加什么呗首先梳理下思路:1.私钥由开发提供2.规则基本是按参数名从小到大排序拼接 至于具体规则 参数名和值之间是否有=链接 都得问清楚规则3.拼接之后是否MD5加密之后再加密等 都需要问清楚4.生成签名之后,再加到请求参数内 即可访问import hashlibimport Cryptofrom Crypto.PublicKey import RSAfrom Crypto
2021-10-17 15:05:38
2116
原创 HttpRunner学习总结—testcases
api层是对接口的描述那testcases就是对API的有序调用通过api字段引用接口定义,引用方式为API文件的路劲,基本推荐相对路径路径基准为项目的根目录 即在跟目录上新建一个debugtalk.py作为api的路径基础config:# 用例名称 name: 输入正确账号密码 输入成功teststeps: # 测试步骤- name: 测试步骤:login api: api/gettoken.yml # 使用关键字api来调用api...
2021-09-30 16:35:18
328
原创 HttpRunner学习总结—https忽略证书
现在很多网址为了安全都是用https请求https=http+ssl 例如https://www.baidu.com/好了,写一个yaml文件 执行 发现https和http均可正常此时 我们开个代理工具,比如fiddle 或者 charles 可能会告诉你错误此时我们要设置忽略错误下面要有测试用例了 测试用例和API的关系图如下...
2021-09-30 16:32:41
227
原创 HttpRunner学习总结—取值与变量
例如我们存在一个这样的接口,返回内容是json格式这种键值对存在的格式就很简单,直接取值就可多层取值也是json取值格式,list取值就是下表:content.0字典就是key:content.keyname但注意一点是,如果返回的是unicode编码,断言时直接写中文即可上面我们说的是取值,以下要说变量在httprunner上,我们要声明变量,关键字是variablsname: 测试登录variables: #注意这里 username: 11...
2021-09-18 16:12:44
451
原创 HttpRunner学习总结—断言
自动化API接口测试时,比较重要的一步是进行断言,自动判断是否验证通过。这就是validate校验器,通常支持2种格式{"name":[check,value]}___通常使用的方式{"check":item,"comparator":name,"expect":expect}具体的断言方式 可以在parser.py (可能存在的路径:..\Python\Python38\Lib\site-packages\httprunner)中查找def get_uniform_compar.
2021-09-18 16:11:53
853
原创 HttpRunner学习总结—接口自动化
HttpRunner的几个核心概念基本分为3层:API层测试用例层:是测试步骤的有序集合,API的请求描述测试用例集:测试用例的无序集合好了 理论到这里以下为自动生成的demo以下模拟登录:新建一个项目 新建一个文件夹为api创建一个文件,如gettoken.yml 也就是yaml文件,千万别写成py文件name: 测试登录request: data: deviceId: '15637934243' grant_type..
2021-09-11 15:06:50
181
原创 HttpRunner学习总结—录制及用例分层
先来了demo吧快速创建用例分层cmd进入需要创建demo的目录,使用startproject命令快速创建hrun --startproject 项目名称
2021-09-11 15:06:12
175
原创 HttpRunner学习总结—环境准备
环境准备:httprunner的前提是你电脑上安装了python环境pip 安装httprunner 指定版本2.5.7pip install httprunner==2.5.7如果安装超市,可以加上豆瓣下载源pip install httprunner==2.5.7 --index-url https://pypi.douban.com/simple安装完成后 hrun -V 查看版本号安装完成后,可以直接应用的命令:httprunner:核心命令 hrun...
2021-09-03 14:12:11
169
原创 git的常见指令
一、Git本地常用操作指令1、创建git库 git init #在当前目录中生成一个.git 目录(含有.git目录的目录即是git仓库)2、注册git用户--->用于在团队合作开发中,表明代码作者。 git config --global user.name XXX #用户名 git config --global user.email XXX #用户邮箱 git config --list #查看用户信息注:加--global,全局设置。3、向...
2021-09-03 14:09:15
96
原创 python实现上传文件夹中图片,并连接数据库update历史数据
最近遇到个需求,上传到移动方的资源3天过期,但没有提供更新接口,需要全部资源重新上传替换3天重复一次 ,工作量太大,于是乎开始思考,过期的只是移动方的资源URL,那我上传一遍替换原来的资源URL,那后续步骤就不用操作,减少一大部分工作量我们先要实现的是一次上传文件夹中图片import os,sysimport requestspath=r"C:\Users\Lenovo\Desktop\XXXXX" # 设置文件夹路径dirs=os.listdir(path)# 用于返回
2021-08-28 11:37:11
401
原创 2021-08-20
python实现Ui自动化的时候,通常都是从selenium库中调用webdriver模块控制Chrome实现但经常会有一些需求,在打开的浏览器上运行,不想每次都从头开始如下代码,每次都是打开一个浏览器# 本地环境的浏览器设置from selenium import webdriver #从selenium库中调用webdriver模块import timedriver = webdriver.Chrome()driver.get("http://XXXX.xxx.xxx.xx.
2021-08-20 17:10:18
89
原创 日常时间格式转换
日常生活中我们看到的日期格式通常是2021-08-14,或者2021/08/14但对于后端代码或者存储到数据库中,我们选择的基本是时间戳格式因为相对唯一想要获取当前时间戳,只要百度时间戳,可以看见一堆在线工具如何获取当前时间戳go语言:import ( "time" ) int32(time.Now().Unix())Java:// pure java (int) (System.currentTimeMillis() / 1000)
2021-08-20 15:26:50
93
原创 python-用form-data形式上传文件请求
虽然现在基本上都约定俗成的接口都用json形式请求但是不可避免地 有些接口需要传文件流,此时就需要用form-data形式上传了for.e:存在以下接口,通过接口创建海报图 但需要上传缩略图,此时接口的Content-Type就不能是application/json,而是multipart/form-data;参数格式也是以表单形式传入postman中设置文件流很简单 ,设置问file格式,然后就可以在本地选择文件上传,见下图实际请求接口就可以成功使用python..
2021-08-14 15:04:57
9241
3
原创 cypress-实现登录页面
Cypress是javascript语言写的,写js脚本可以用pycharm编辑器上直接编写。pycharm - File - Open - D:\Cypress\cypress 导入项目修改配置中的语言版本在 integration 目录下新建你的工程目录,如demo,下面新建一个demo.js文件脚本实现功能:输入用户名,断言输入框输入成功 输入密码,断言输入成功 点登陆按钮 断言1 判断页面重定向跳转到首页 断言2 判断页面包含某个文件desc...
2021-08-08 19:52:42
1684
原创 windows环境npm安装Cypress
安装Cypress 现在基本上的配置都能支持了但如果想使用npm安装Cypress 必须要node.js 8 以上(推荐使用)安装node.js,官网下载地址:https://nodejs.org/en/download/下载后 就是一只下一步 即可验证是否安装成功 运行命令行cmd输入node -vnpm -v显示版本号 即可备注:由于新版的nodejs已经集成了 npm,所以之前 npm也 一并安装好了如果npm版本过低,也可以通过以下指令升级npm版..
2021-08-08 19:52:13
385
原创 python-正则表达式之findall的用法
正则口径:知道前后取中间,如果最后$结束python中则这表达式的方法通常由re.match re.searchre.findallre.findall匹配的时候,会把结果放到list返回,如果没有匹配到返回空list不会报错import res1=re.compile('\d+')# 匹配数字r1=s1.findall('sahduasu27bhsagd7236vbcsahg923')print(r1)s2=re.compile('\d+')r2=re.findall(s.
2021-07-31 22:33:23
17162
1
原创 python-正则表达式之match、search 的用法
re.match 从字符串的起始位置匹配,匹配不成功,match()就返回none。re.match(pattern, string, flags=0)函数参数说明:pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符,可选标志import rer1=re.match('hello', 'hello.word')r2=re.match('1hello', .
2021-07-31 22:32:41
2520
2
原创 python3连mysql增删改查
自动化测试时都有个数据准备和数据清理的操作,因此需要python连接mysql删除多余的数据安装pymysqlpip install PyMySQL当然测试库的ip及账号密码 自己总有的吧查询操作:假设查询了一条id=1的数据 如下接下来使用python转换成对应的代码查询import pymysql# 打开数据库连接db = pymysql.connect(host='47.111.x.x', port=3306,
2021-07-25 19:04:55
228
原创 postman使用-第十一关 使用postman进行抓包(模拟fiddler抓包)
我们常用的抓包工具 基本会选择fiddler或者 Charles ,都是非常方便实用的这里用postman使用代理的功能,抓取windows上浏览器发出去的请求启动windows电脑代理打开电脑网络和Internet 选项打开代理配置 ,并且输入本地ip 并保存打开postman代理点 proxy setting 按钮,Port 默认 1111(跟前面电脑设置的代理端口保持一致)输入本地搭建的地址http://localhost:8080/可以在History 区域,...
2021-07-17 17:11:39
1930
原创 postman使用-第十关 cookies 管理器
模拟web网站登录的时候,一般都会有cookies提供了一个 MANAGE COOKIES 模式,使您可以编辑与每个域关联的cookie。这里就以登录禅道为例吧,相信现在用禅道来管理项目的是比较多的吧没访问之前点来cookies管理器,这时候 MANAGE COOKIES 是空的点击send 发送一个请求后,再次查看 ,可以看到服务器端返回了4个cookies此页面可以添加、编辑,删除 cookies输入正确的请求头及请求参数,选择post,点击send登录成功,.
2021-07-17 17:11:01
3630
原创 jmeter influxdb grafana搭建实时性能监控平台
先来个对比吧,证明监控凭他的意义jmeter自带报告样式比较单一,样式无法自定义:grafana报告效果丰富也相对更直观一点:安装部署安装jmeter,自行下载 https://jmeter.apache.org/应该基本的测试人员都安装了的配置jmeter安装influxdb,https://portal.influxdata.com/downloads ,尽量不要选最新版防止有未知问题下载完成后解压到本地如:D:\influxdb\influxd...
2021-07-10 21:12:35
121
原创 postman使用-第九关 请求参数预处理
postamn 提供可在请求中使用的动态变量:{{$guid}} :v4样式的guid{{$timestamp}}:当前时间戳(Unix时间戳,以秒为单位){{$randomInt}}:0到1000之间的随机整数当输入{ 的时候,会自动显示上面三种随机变量可以使用更多随机变量可以参考官方文档:https://learning.postman.com/docs/writing-scripts/script-references/variables-list/比如用户名使用时间戳,那每次注册都不
2021-07-01 19:32:55
624
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人