自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows10 同时安装python2和python3,区分Python2 python3

1.去官网下载python包到指定目录下面https://www.python.org/downloads/windows/2.去python2和python3的安装目录下面,修改文件名对应指定版本,可根据个人喜好将这两个文件命名即为命令的名字,为了便于区分我一般将python2版本的文件名字改为python2,python3版本的文件名字改为python33.修改环境变量,将两个版本的.exe文件所在目录添加到环境变量中右击我的电脑->属性->高级系统设置->右下角环境

2021-09-07 15:56:22 11

原创 httprunner2.x版本的搭建和使用

一.安装httprunner环境pip install httprunner==2.5.7二.查看 httprunner框架是否安装成功(查看版本)hrun -V三.运行服务linux系统$ export FLASK_APP=docs/data/api_server.py$ export FLASK_ENV=development$ flask runwindows系统$ set FLASK_APP=docs/data/api_server.py$ set FLASK_ENV=

2021-08-26 19:36:05 14

原创 httprunner框架历程介绍(二)

四.接口测试外的其他功能四.har2case作用:将har文件转化成yml或者json文件,具体使用方法可以看下har2case -h的罗列指定目标文件会生成yml文件 har2case tests/data/demo.har demo.yml不指定目标会生成json文件 har2case tests/data/demo.har参考:https://debugtalk.com/post/HttpRunner-supports-HAR/五.测试结果校验器(validator)在自动化测试执行

2021-08-26 19:20:13 19

原创 httprunner框架历程介绍(一)

因需求要搞一些测试自动化,但苦于自己本身没有接触过测试的自动化,无从下手很是头疼。近期从朋友那里了解到了httprunner这个框架,就翻阅了部分资料惊奇的是在网上发现了httprunner框架的原生作者和他整理的一些文章(包括框架的起源命名,作者的灵感到实现的过程以及功能迭代),感觉还不错!因此对这个框架做了一些简单的总结整理一.起源这个框架的乳名是ApiTestEngine,本身只是一个接口自动化测试框架。后来随着框架功能的逐步强大,这个名字已经不能很好地涵盖他强大的功能了,于是更名为httpru

2021-08-26 18:52:49 36

原创 为了实现linux和mac之间的文件传输 安装 lrzsz rz sz命令

sz和rz命令其实是lrzsz包里面的命令,mac可以通过brew来下载1.安装lrzszbrew install lrzsz2.安装脚本地址:https://pan.baidu.com/s/1HqR3exifN1PIPvf8Vaonzg?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0&traceid=#list/path=%2F保存iterm2-send-zmodem.sh和iterm2

2021-04-19 18:17:53 92

原创 golang 程序报错 panic: open config.json: too many open files

问题:程序在运行过程中报错panic报错:知识点:too many open files(打开的文件过多)是linux系统种常见的错误,files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄,引起的原因是进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数解决:第一反应是哪里文件句柄读取没有释放,排查代码发现每个打开的配置文件在读完之后都会defer file.Close()关闭查看系统的配置 ulimit -a | grep

2021-03-31 12:43:30 52

原创 golang 获取一天前,一个月前,一年前的日期

package main import ( "time" "fmt")func main() { t := time.Now() // 获取当前时间 m := t.Format("2006-01-02 15:04:05") //获取当前格式的日期 beforeDay := t.AddDate(0,0,-1) // 三个参数分别是年月日,此处获取的是前一天的日期 beforeMonth := t.AddDate(0,-1,0) // 前一个月的日期 beforeYear :=

2021-03-29 16:21:12 665

原创 go mod的使用

go mod是管理项目里面所有用到的包go mod download,下载项目里面的所有包go mod tidy 也是下载项目里的包,但会新增没有的,删除未用到的go mod vendor 把包的内容复制到vendor目录下

2021-03-16 11:50:23 12

原创 golang 将切片转成string类型

import ( "encoding/json" "fmt")var a []stringa = ["s","d","f"]b, err := json.Marshal(a)if err != nil { panic(err)}result := string(b)fmt.Println(result)以上是将切片a转成字符串result

2021-03-16 11:26:43 660

原创 golang gopkg.in/gomail.v2包 发送邮件表格

1.用gopkg.in/gomail.v2包 发送邮件表格代码如下:package mainimport ( "fmt" "gopkg.in/gomail.v2" _ "html/template")var mailConfig = map[string]string{ "MAIL_SMTP_HOST": "xx", // 服务器地址 "MAIL_USER": "xx", // 发件人的邮箱地址 "MAIL_PASS": "xx", // 口令 "

2021-01-08 14:53:56 675 1

原创 Linux supervisor 守护进程的安装和配置

1.安装supervisoryum install -y supervisor2.配置supervisor配置路径# 主配置路径/etc/supervisord.conf#运行程序配置文件夹/etc/supervisord.d/主配置文件里的内容[unix_http_server]file=/etc/supervisord.d/supervisor.sock ; the path to the socket file[supervisord]logfile=/etc/s

2020-12-28 19:51:58 69

原创 Go多协程并发环境下的错误处理,其中一个协程意外退出,其他协程是否退出问题

在golang中,开启多个协程,其中一个协程挂掉了,其他写好才能会继续运行或者会监控到挂掉协程的状态吗?答案:其中一个协程意外退出,代表是程序问题,一个协程退出了,其余协程也会退出,主进程退出其他协程不会捕捉到挂掉协程的状态...

2020-12-28 16:19:05 572

原创 正则匹配

正则匹配匹配至少一个空格 \s+匹配0到多个空格 \s*表示空白字符 \s例如\s+drop\s+ 表示匹配drop字符串且前后一个或多个空格

2020-12-25 11:27:00 21

原创 golang 生成token与解析tonken

package mainimport ( "fmt" "github.com/dgrijalva/jwt-go" "time")var nowDate = time.Now().Format("2006-01-02 15")var secret = fmt.Sprintf("%v%v",nowDate,"xxxx")// GenerateToken 生成Token值func GenerateToken(mapClaims jwt.MapClaims, key string) (str

2020-12-01 14:45:28 569

原创 正则匹配ip地址

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

2020-11-18 16:07:42 45

原创 golang 去除字符串首尾空格

package mainimport ( "fmt" "strings")func main() { str := " hello world! " str = strings.TrimSpace(str) fmt.Println(str)}

2020-11-17 15:12:33 2715

原创 golang 将字符串变量中的单引号、双引号和反单引号进行转义

package mainimport ( "strconv" "fmt")func main () { var a string a = "qwe'wer',`f.lopg` "uiii"" // 随便写的例子,因为字符串变量中的单双引号是我们不能提前知道的 b := strconv.Quote(a) fmt.println(a)}像这种未知的字符串变量,里面有单引号、双引号甚至是返单引号之类的,再用变量的时候,变量中的单双引号会对变量外的

2020-11-17 15:07:00 1511

原创 golang 日志的实现

我整理的golang 比较好用的日志文件,代码可复用package initlog // 所在的包名import ( "fmt" "log" "os")var Outfile *os.File// 这是定义的日志的等级级别可根据自己的需求,定义自己需要的级别var ( Error *log.Logger Info *log.Logger Warn *log.Logger )func init() { var err error Outfile, err

2020-10-29 16:58:38 70

原创 golang 处理post、get请求以及string to json格式的转化

1.POST请求package mainimport ( "bytes" "net/http" "io/ioutil")type getToken struct{ // 用于将string格式转成json格式,取出token Token string `json:"token"`}// 处理post请求func GetToken() string { jsonStr :=[]byte(`{ "username": "xxx", "password": "xxx" }

2020-09-22 12:03:57 769

原创 golang 执行linux命令,返回命令执行码,返回标准错误输出

import ("os/exec""strings")func execCmd(command string) (int, string) { cmd := exec.Command("/bin/bash", "-c", command) errout := new(bytes.Buffer) //定义一块内存,用来存放标准错误输出 cmd.Stdout = initlog.Outfile // cmd.Stdout -> log // cmd.Stderr = initlog.O

2020-09-11 19:45:09 370

原创 pt-table-checksum在校验时遇到的报错 总结

错误1Skipping table db.table because on the master it would be checksummed in one chunk but on these replicas it has too many rows原因:参数–chunk-size-limit默认为2,当遇到行数多的大表时pt-table-checksum可能会跳过不检测解决:可以根据输出的提示将–chunk-size-limit适当调大一点错误2Cannot connect to h=i

2020-09-09 14:36:47 279 2

原创 golang error信息处理

1.场景:在程序报错的时候,想要固定的报错信息执行相应的代码逻辑所做的操作:2.代码:import stringsif errCheck != nil { if strings.Contains(errCheck.Error(), "Table 'opstyu.checkdb' doesn't exist") { // 表示表checkdb不存在,就是没有跑过校验数据 return "1","2" } else { initlog.Error.Println(errChec

2020-08-28 18:38:39 104

原创 airflow 安装插件REST API以及踩过的坑

1.安装部署:1.在airflow.cfg配置文件下面追加[core]plugins_folder = /home/{USER_NAME}/airflow/plugins注:airflow目录前面是airflow所在的目录的绝对路径2.在airflow目录下面,新建plugins目录mkdir plugins3.下载安装包wget https://github.com/teamclairvoyant/airflow-rest-api-plugin/archive/master.zip

2020-08-27 15:35:23 467

原创 golang 获取当前时间,自定义时间格式

1.获取当前时间package mainimport "time"now_time := time.now()fmt.Println(now_time)打印结果:2020-08-19 10:36:49.738716241 +0800 CST m=+0.0001264032.获取自定义格式的当前时间package mainimport "time"now_time := time.now()fmt.Println(now_time)currentTime := now_t

2020-08-19 10:44:50 857

原创 golang切片的交差集

1.交集:func intersect(slice1, slice2 []string) []string { // 取两个切片的交集 m := make(map[string]int) n := make([]string,0) for _,v := range slice1 { m[v]++ } for _, v := range slice2 { times,_ := m[v] if times == 1 { n = append(n, v) } } ini

2020-08-17 10:37:18 1406

原创 位(bit)、字节(byte)、字符

1.位(bit):数据存储的最小单位,每个二进制数字0或者1就表示一个位2.字节(byte):八个位构成一个字节1byte = 8bit1KB = 1024byte1MB = 1024KB = 1024 *1024byte1GB = 1024MB3.字符:一个汉子或者一个英文就表示一个字符,一个英文字母占一个字节,一个汉子大约占两个字节...

2020-08-14 14:26:52 61 1

原创 golang 清空切片

clise = clise[0:0] // clice为切片的名字

2020-08-13 19:21:02 4772

原创 pt-table-checksum数据校验工具

1.原理:1.可以指定从库的数据校验:提前在指定的数据库中建一个表,用于存储要校验的从库的ip、用户名、密码,用于主库连接从库,然后使用pt工具,pt在校验时会生成一个表,这个表的生成位置,可以在pt工具的参数中设置,这个表的作用是存储校验值、校验表的分块标记和校验时间等;pt在工作的时候,会将主库中的某个库中的某个表进行拆分,形成一个校验值存到生成的表当中,主库在生成一个表之后会生成相同的语句同步到从库中,从库做与主库相同的动作,生成表以及校验数据存入表中还有一个pt-table-sync工具与上面

2020-08-11 16:05:02 186

原创 mysql支持的数据类型及比较

1.数据类型数值型严格数值类型integer支持在类型后面的小括号内指定显示宽度,不指定默认是int(11)配合zerofill使用,就是0填充只有整数类型有的属性:auto_increment,一般从1开始,每行增加1,一个表中最多有一个自增列,定义为not null 并定义为primary key或者uniquedecimal在保留位数的时候是根据精度和标度来的,并不会四舍五入numeric(与decimal一样)近似数值类型floatrealdouble precision

2020-08-11 16:01:03 69

原创 uwsgi部署django以及uwsgi的重启和重置

前提:搭建好django框架简介:构建托管服务开发全栈应用于前端server(nginx)与后端server(uWSGI)的通信中,制定规范等等,让前后端服务器可以顺利理解双方都在说什么1.安装uwsgipip install uwsgi #最好pip运行环境与django是一套,否则在启用服务的时候会报缺少module2.部署uwsgia.在django项目的同级目录下面新建一个目录,我这里是新建了Uwsgi目录b.cd Uwsgic.在新建的Uwsgi的目录下面,新建一个uwsgi的

2020-08-04 14:51:42 568

原创 jinja2 之变量取值 flask模板引擎

简介:jinja2是一款flask的模板引擎,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强并且更加容易理解和维护使用起来灵活简单,我们只需要提供一个模板,并在模板里面用{{变量}}占好位置,使用时,在模板文件的外部将变量传进去,即可还原文件本身的样子。这里只介绍一种用法:变量取值安装:pip3 install jinja2测试是安装成功:Python -c “import jinja2”使用:1.将模板文件创建好:将里面的变量用{{变量名}}代替2.在其他文件,需要向模板里面

2020-07-30 18:26:59 226

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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