自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 开源接口测试平台BTest

BTest platform前言BTest是一个接口测试平台, 能帮助用户高效快捷地完成接口自动化用例的开发, 覆盖较为复杂的流程接口场景. 它是我个人业余时间开发的, 难免有不少BUG. 类似这样的平台, 网上已经有很多, 那为什么还要开发这个呢.在此之前, 实际工作中我基于开源项目HttpRunnerManager做了一些补充性和优化性的二次开发, 渐渐有了自己写个测试平台的想法: 一是...

2020-04-23 13:24:07 1765 3

原创 开源工具djmockserver

djmockserver介绍本程序是基于django开发的mock server, 用于构造动态的复杂的mock响应.在我另外的项目<BTest接口测试平台>中使用开源工具moco作为mock服务. 然而, moco对于实际应用中构造复杂动态的响应的需求, 似乎并没有很好的满足, 需要二次开发定制. 为了满足项目需要,就简单的开发了此程序.虽然简单, 但也实用. 对照moco的...

2020-04-15 23:38:25 224

原创 djmockserver架构图

2020-04-15 13:32:18 177

原创 httprunner(1.5.8)结果提取优化:提取失败时可返回用户定义的默认值

问题描述有的情况下,接口某返回字段是空值,有可能就不返回该字段,由前端来逻辑判断。比如:用户信息接口中,性别不是必要字段,该字段为空值时,查询用户信息的接口中可能就不会带有该字段此时使用httprunner来提取该字段,就会直接报错。而实际情况是,用户未填写性别字段,该字段为空而已,并非接口错误。所以在这种情况下,应该给接口用例开发者提供方法,用于提供字段失败时返回的默认值就类似在jmeter的json提取器中,如果某属性提取失败,开发者可以提供默认值。情况就是这样,下面看代码需要优化的代码

2021-03-08 09:12:21 332 1

原创 python - 切片是浅拷贝

ls = [list(range(i, i + 5)) for i in range(5)]ls_slice = ls[:3]print(ls) # [[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]]print(ls_slice) # [[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6]]ls[0] = 'aa'ls_sli

2021-01-10 10:27:20 362

原创 使用国内源安装k8s工具

ubuntu / Debian$ apt-get update && apt-get install -y apt-transport-https$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - $ cat <<EOF >/etc/apt/sources.list.d/kubernetes.listdeb https://mirrors.aliyun.co

2020-09-26 12:12:29 431

原创 请求-并发-吞吐率关系

总请求 total:39493 个平均响应 avg:81.54 ms吞吐率 qps:1314.82 qps并发 c: 100 个持续时间 time: 30stotal = ( c * time ) / avg = qps * time

2020-09-06 22:01:00 169

原创 LeetCode 21. 合并两个有序链表

题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路这是经典归并排序算法,下面是网上的算法步骤# Definition for singly-linked list.class ListNode(object): def __init__(self, val=0, next=None):

2020-08-26 16:37:43 112

原创 LeetCode 20. 有效的括号

题目难度:简单给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true

2020-08-18 10:50:18 110

原创 获取最长不重复子串

def get_longest_substr1(s): """ 暴力破解 1.获取全部不重复子串 2.按长度,降序,取第一个 :param s: :return: """ length = len(s) non_repeats = [(len(s[x:y+1]), s[x:y+1]) for x in range(length) for y in range(x, length) if len(s[x:y+1]) == len(set(

2020-07-28 09:22:34 154

原创 python--数组平移K位

def move(ls: list, offset): """ 元素原索引+位移数(正为右移,负为左移)之和求关于数组长度(数组的模)的余数,即为位移后的元素索引。 再对新索引升序排序,去除索引,即为位移后的新数组 :param ls: :param offset: :return: """ mod = len(ls) ids = [[(item[0]+offset)%mod, item[1]] for item in enumerat

2020-07-27 11:59:20 1769

原创 python 可迭代对象-迭代器-生成器

迭代器的本质就是每次调用__next__()返回下个元素或抛出StopIteration的容器对象迭代器对象可以调用close()方法关闭只实现Iter方法(返回值类型需为迭代器类型), 为可迭代对象, 如列表、字典等from collections.abc import Iterable, Iteratorclass MyIteration: def __init__(self, n=10): self.n = n self.lst = range(n).

2020-07-15 15:34:27 153

原创 python 链表 + 迭代器

class MyLinkedList: """ 双向链表 """ class Node: def __init__(self, data, prev=None, next=None): self.data = data self.prev = prev self.next = next def __init__(self): """ 有头的双向链表

2020-07-15 11:53:14 826 1

原创 python 操作 mongodb

import pymongodb_info = { # 测试环境 # 1 'dba': { 'user': 'dba', 'pwd': 'dba', 'ip': '192.168.1.100', 'port': '24000', 'dbname': 'dba' }, # 2 'dbb': { 'user': 'dbb', 'pwd': 'dbb'

2020-07-02 11:38:30 95

原创 ubuntu20 软件安装

retext (markdown editer)sudo apt-get install retextchrome1. sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/2. wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -3. sudo apt

2020-06-30 11:20:26 752

原创 python操作redis集群删除key

"""安装 pip install redis-py-cluster版本如下:redis 3.0.1redis-py-cluster 2.0.0"""from rediscluster import RedisClusterport = 6379# redis连接信息redis_basis_conn = [ {'host': '10.0.0.1', 'port': port}, {'host': '10.0.0.2', 'port': po

2020-06-29 20:06:48 1167

原创 django执行原生SQL的方法

1.使用raw方法book = Book.objects.raw("select * from book_table")for row in book: print(row)2.执行自定义SQL#导入数据库连接,获取游标from django.db import connectioncursor = connection.cursor()#插入cursor.execute("insert into table(id, name) values(123, 'xxx')")#更新curs

2020-06-28 15:59:25 158

原创 最长子串-python实现

def getLongStr(a):"""滑动窗口""" lenght = len(a) s = set() ans = i = j = 0 while i < lenght and j < lenght: if a[j] not in s: s.add(a[j]) j += 1 ans = max(ans, j-i) else: .

2020-05-27 17:55:20 683

原创 python实现 -- LeetCode 2 两数相加

给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。'输入'a = [1, 2, 3, 4]b = [7, 8, 9, 0, 1]'输出'c = [8, 0, 3, 5, 1]def add(a, b): if len(a) > len(b): b.exten.

2020-05-27 15:09:41 137

原创 二分法查找-python实现-无重复值与有重复值的情况

def binary_search(arr: list, e: int) -> int: """ 适用于无重复值的有序列表, 返回目标索引 :param arr: :param e: :return: """ left = 0 right = len(arr) - 1 while left <= right: mid = (left + right) // 2 if e == arr[mid]

2020-05-27 13:54:51 872 1

原创 保存个代码统计工具,挺好的

地址:https://github.com/AlDanial/cloc

2020-05-26 13:35:30 240

原创 关闭DOCKER网络docker0

docker 会自动在宿主机创建两个网络 docker0 和 br-xxxxxxx如要删除, 可以使用下面命令yum -y install bridge-utilsifconfig docker0 down # 关闭brctl delbr docker0 # 删除ifconfig br-xxxxxxx down # 关闭brctl delbr br-xxxxxxx # 删除...

2020-05-19 11:35:08 6679 1

原创 四、docker 容器连接

通过端口映射,使多个docker 应用之间可以相互访问还可以使用网络连接,即为容器指定所属网络, 多个docker应用在所属网络内相互访问建立网络并把多个应用添加到网络中,可以使用docker-compose完成...

2020-05-19 10:30:49 223

原创 ubuntu国内源

# 阿里deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multivers

2020-05-16 20:14:46 193

原创 三、docker 容器使用

1. docker 客户端使用命令行直接输入 docker 会显示相关命令[root@localhost docker]# dockerUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions: --config string Location of client config files (default "/root/.docker").........

2020-05-15 12:58:22 251

原创 二、docker 构架和组成

在这里插入代码片

2020-05-14 11:47:32 151

原创 docker push 到 dockerhub 失败 requested access to the resource is denied

未登录或密码错误# 先登录,后推送docker login镜像名不符合推送规则推送规则: docker push 用户名/镜像名[root@localhost docker]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEpy3_dev v1.0 0917af555736 30 minu

2020-05-11 16:38:59 449

原创 一、docker 安装(centos)

使用 Docker 仓库进行安装安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2yum install -y yum-utils device-mapper-persistent-data lvm2设置仓库 yum-config-manager --add-repo https://download.docker.com/linux

2020-05-11 10:21:29 105

原创 MYSQL-条件判断-IF-IFNULL-CASE

IFIF(expr1,expr2,expr3), 如expr1为true, 则返回expr2; 否则返回expr3类似编程中的三目表达式mysql> select *, if(age>30, 1, 0) from persons;+----+--------+-----+------+------------------+| id | name | age | addr ...

2020-05-05 21:14:13 198

原创 MYSQL-常用函数

演示数据mysql> select * from websites;+----+--------------+---------------------------+-------+---------+| id | name | url | alexa | country |+----+--------------+----...

2020-05-04 22:14:42 132

原创 MYSQL-聚合函数

聚合函数聚合函数aggregation function 可称为组函数, 一般可配合 group by 和 having 使用count 计算行数mysql> select count(1) from websites;+----------+| count(1) |+----------+| 6 |+----------+--字段去重后计算行数mysql&...

2020-05-04 18:33:42 314

原创 MYSQL-DATE内置函数

函数描述NOW()返回当前的日期和时间CURDATE()返回当前的日期CURTIME()返回当前的时间DATE()提取日期或日期/时间表达式的日期部分EXTRACT()返回日期/时间的单独部分DATE_ADD()向日期添加指定的时间间隔DATE_SUB()从日期减去指定的时间间隔DATEDIFF()返回两个日期之间的天数...

2020-05-04 17:44:03 198

原创 MYSQL-LIKE和REGEXP的区别

使用的数据mysql> select * from websites;+----+--------------+---------------------------+-------+---------+| id | name | url | alexa | country |+----+--------------+---...

2020-05-03 21:39:16 4101

原创 LINUX-AWK-删除或获取最后一列

AWK中取列是“$”+列号,据此要实现列的去留,可以利用内置变量NF(Number of Field):当前行的字段的个数,即当前行被分割成了几列使用“$NF”即可取到最后一列,也可以运算“$(NF-1)”取倒数第二列。如果要删除某一列,则可以在输出前把目标列赋值为空串获取指定列[root@rabbit-api-001 test]# lltotal 536-rw-r--r-- 1...

2020-04-30 15:13:31 10011 1

原创 LINUX-AWK-删除首行、删除尾行、删除首尾两行

在网上看到一个很巧妙的方法,可以删除文件的首行、尾行和首尾两行,原理和操作记录如下利用awk按行遍历,依次执行body的特点, 如下面命令awk 'NR>1 {print line} {line=$0}' 作用是去掉最后一行。首轮先输出line(此时为空值,打印空行,所以用 NR>1 跳过此输出),再把首行赋值给line变量,然后在第二轮输出了line(此时为第一行内容),...

2020-04-30 14:33:03 15899 1

原创 LINUX-AWK-2-重要预置变量

在这里插入代码片

2020-04-30 14:12:55 132

原创 truncate和delete的区别

两个语句均可以删除数据,但是有区别delete 删除数据,未释放数据文件空间,记录日志,可以回滚truncate 删除数据,释放空间,不记录日志,不能回滚,执行速度大于deleteDELETE FROM table_name [WHERE Clause]TRUNCATE table_name ...

2020-04-30 09:35:17 139

原创 django.db.utils.OperationalError: (2006, 'MySQL server has gone away')-一次性插入数据量过大,导致事务失败

mysql受限于max_allowed_packet参数,一次性插入或修改的数据量大于此设置,会导致事务失败如果数据量无法减小,那么可以修改此参数。查看参数show VARIABLES like '%max_allowed_packet%'; -- 下面显示此参数设置为100M+--------------------+-----------+| Variable_name ...

2020-04-29 15:03:07 757

原创 LINUX-统计文件中某字串个数

两种方法grep -o 'STR' file.txt | wc -lawk -v RS='STR' 'END{print --NR}' file.txt

2020-04-28 21:31:32 185

原创 LINUX-AWK-1-脚本组成和执行逻辑

一、AWK脚本组成脚本分别三部分BEGIN:主要用于设置变量,如预置变量FS(输入的域分割符), OFS(输出的域分割符)和用户自定义变量sum=9等; 以及输出表头(配合使用printf函数)之类的动作awk 'BEGIN{FS="Apr"; sum=9} NR>1{print $2} END{print sum+=NR}'上面命令中BEGIN设置了域分割符为字串"Apr"和自定...

2020-04-27 10:36:19 225

python正则模块re.xmind

个人学习,整理python正则模块re的内容

2020-05-22

空空如也

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

TA关注的人

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