自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pytest -- Allure报告

pytest使用整理

2022-11-25 12:25:23 526

原创 Dingding通知

配置钉钉机器人,自动化框架中,调用api,在钉钉群内发消息

2022-11-25 12:21:31 235 1

原创 ADB命令

ADB命令

2022-06-17 01:30:43 1832

原创 替换语言string,生成指定语言的测试URL

需求:给一个中文的测试URL,生成指定多种语言的测试URL

2022-06-17 01:22:32 134

原创 mac 安装virtualenvwrapper后 执行命令mkvirtualenv 123-env,报错:zsh: command not found: mkvirtualenv

现象: ~ % mkvirtualenv 123-env zsh: command not found: mkvirtualenv解决:1、确认文件which virtualenvwrapper.sh的路径 /Library/Frameworks/Python.framework/Versions/3.9/bin/virtualenvwrapper.sh2、mkdir ~/pyEnv3、编辑配置文件:vi ~/.zsrc expo...

2021-08-03 23:25:00 1488 2

原创 Python 版本、包管理相关note

一台机器上安装了多个版本的python,操作记录:# 进入python3.9的代码行~ % python3.9 将python3.7的所有安装包安装到python3.9#导出python3.7所有安装包~ % pip3.7 freeze > requirements.txt #requirements.txt 自定义# 安装所有安装包到python3.9~ % pip3.9 install -r requirements.txt...

2021-07-24 20:39:41 150 2

原创 多线程_生产者_消费者_锁Lock_Condition

import threadingimport randomimport datetime"""模拟3天的简易仓库存货和出货运营模式: 每天售卖电脑时检查电脑仓库存储量是否小于100,小于的话去进行补货,随机生成一个补货单; 大于等于100时,去进行售卖,随机生成用户订单,进行售卖。 每天营业结束时,需要统计一天售卖的总金额和总数量"""SAFETY_STOCK = 100 # 安全库存SALE_TIMES = 50 # 每天最大销售次数,超过就结束PRICE .

2021-07-04 20:50:33 121

原创 多线程Threading

# 传统方式执行 VS 多线程执行的区别:# 传统方式,顺序执行,比如下载图片,一次只能下载一张,等待网络返回的时间就浪费了,运行慢# 多线程,并行,同时下载多张图片,在等待网络返回的时间,去执行下载其他图片的操作,运行快,利用资源更高效# 传统import threadingimport timedef draw(): print("draw") time.sleep(0.5)def write(): print("write") time.sle.

2021-07-04 20:45:05 84

原创 多线程Threading 锁Lock

import threading"""如何解决多线程共享全局变量的问题?用锁,先获取锁:lock.acquire(),处理共享全局变量,释放锁:lock.release();另一个线程才能获取锁,处理全局变量注意:加锁,只加到必要的位置:改变全局变量的位置,没有的地方不加,比如打印等等加几把锁,看处理几个全局变量查看当前线程数: print(len(thread.enumerate())) 是数,所以用len()。thread.enumerate() 打印的是线程列表"""valu.

2021-07-04 20:42:07 260

原创 Python 垃圾回收

垃圾回收(Garbage Collection)1. 找到内存中无用的垃圾资源2. 清除这些垃圾并把内存让出来给其他对象使用。python中的垃圾回收:主要手段:引用计数辅助手段:标记清除和分代回收机制【引用计数】每个对象都有PyObject,当对象有新的引用,ob_refcnt 增加;当引用被删除,ob_refcnt 就减少;当引用计数=0, 该对象生命就结束了1. 导致引用计数+1的情况有哪些 对象被创建,被一个变量引用,赋值操作:a = 8 对象被另一个变量引用,

2021-06-06 20:07:28 120

原创 装饰器 闭包 nonlocal

# 装饰器 # 1 闭包# 概念,如果一个函数中,定义了另一个函数,且内函数使用了外函数的变量,那么里面的函数称为一个闭包def greet(name): print("outter") def say_hello(): print("%s 你好" % name) return say_helloif __name__ == '__main__': res = greet("didi") # outter # print(res) #

2021-05-23 23:50:39 90

原创 Python 异常

异常语法try: # 如果捕获到异常,后面的代码就不执行了 # 不要把大片代码放在一个try里,然后使用pass忽略掉所有错误 passexcept Exception as e: # except 必须有一个 passexcept (Exception1, Exception2) as e: # 一次处理多个异常,放在元组里 passexcept Exception as e: # all other exception pa

2021-04-05 15:05:04 177 1

原创 Leetcode 121. 买卖股票的最佳时机

买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖.

2021-03-11 22:52:01 90

原创 Leetcode860. 柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。第 4 位

2021-03-11 22:51:36 140

原创 Leetcode122. 买卖股票的最佳时机 II

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天

2021-03-11 22:51:10 75

原创 Java循环结构

For、while、do-while次数确定用for,不确定用whilepublic class LoopTest { public static void main(String[] args) { // for循环 for (int i = 0; i <5; i++) { System.out.println(i); } // while循环 int i= 0; w

2021-03-06 01:16:24 85

原创 Java 选择结构

if、else if、else注:else if, python 中是 elifpublic class IfTest { public static void main(String[] args) { int x = 100; int y; if (x >= 3) { y = 2 * x + 1; } else if (-1 < x &&x < 3

2021-03-06 01:12:15 69

原创 Java super 和 this 关键字

总结super 访问父类内容, this 访问本类内容super 关键字用法: (注:首字母小写)在子类的成员方法中,访问父类的成员变量在子类的成员方法中,访问父类的成员方法在子类的构造方法中,访问父类的构造方法this 关键字用法: (注:首字母小写)在本类的成员方法中,访问本类的成员变量在本类的成员方法中,访问本类的【另一个成员方法】在本类的构造方法中,访问本类的【另一个构造方法】注:this 只能有一个(一个方法块中)this 和 super 不能同时使用(一个方法块

2021-03-06 01:01:29 92

原创 Java final关键字

修饰类、方法、局部变量、成员变量 四种,详情如下:1、修饰类 – 最终类格式:final class 类名 {//类体}特点:不能作为父类,其方法自动声明为final,成员变量不是final所有的成员方法不能被override(因为没有子类)2、修饰方法 – 最终方法(不能被子类override)格式:修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}3、修饰局部变量 – 最终变量(只能赋值一次,不能再修改)格式:

2021-03-06 00:59:18 75

原创 Java 继承

概念:子类继承父类的特征和行为设计原则:尽量不要修改已经使用的类,写一个新类覆盖使用继承是多态的前提继承类型Java单继承,一父一子,不支持多继承(多个爸爸)Java支持多重/多级继承(祖孙三代)Java可以一父多子继承特性子类可以继承父类非private 的属性和方法子类override父类的方法,但不能override父类的属性子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。缺点:提示类之间的耦合性(耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。继承关键字继

2021-03-06 00:55:37 136

原创 Leetcode125. 验证回文串

验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。**说明:**本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: falseclass Solution(object): def isPalindrome(self, s): """ :type s: str .

2021-02-28 19:57:48 77 1

原创 Leetcode711. 宝石与石头

题目:宝石与石头给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S = "ZZ"输出: 0注意:S 和 J 最多含有50个字母。J 中的字符不重复。解题class

2021-02-28 19:40:12 131

原创 Java 变量 局部变量和成员变量区别

变量定义程序运行过程中,可以改变的量变量声明所有的变量在使用前必须声明。声明变量的基本格式如下:type identifier [ = value][, identifier [= value] …] ;格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。变量赋值变量名称 = 数据值; // 将右边的数据值,赋值给左边的变量static int click = 0; // 类变量,staticString str = "he";

2021-02-28 19:15:30 107 2

原创 Java 封装Encapsulation

定义将函数实现细节封装起来,防止代码和数据被外部类随意访问。要访问该类的代码和数据,必须通过严格的接口控制优点减少耦合便于理解、维护隐藏代码细节,控制外部访问,增强安全性内部结构可以自由修改对成员变量进行精确控制实现Java封装的步骤修改属性的可见性来限制外部类对属性的访问(一般限制为private私有)对私有属性创建一对赋取值方法,用于外部访问实例package TestEncapsulation;public class EncapsulationPerson { /

2021-02-27 09:27:46 128

原创 正则sub应用 any-rule插件

今天遇到个小的字符串处理,记录一下需求:将 AsdHsdfJjjj 替换 _Asd_Hsdf_Jjjj主要是这个正则的处理~~def exchange_str(s): # 方法一:正则 new_l = re.sub(r"([A-Z])", lambda x: "_%s" % x.group(1), s) # !!! # print(new_l) # 方法二:遍历处理 new_l = [] s_l = list(s) for letter in

2021-02-27 08:30:12 350 1

转载 消息中间件相关知识

一、消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。2、消息中间件的组成 2.1 Broker消息服务器,作为server提供消息核心服务 2.2 Producer消息生产者,业务的发起方,负责生产...

2020-08-17 03:40:39 160

原创 Leetcode200. 岛屿数量

200. 岛屿数量200. 岛屿数量给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。​示例 1:输入:[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0','0']]输出: 1示例 2:输入:[['1'

2020-07-12 23:10:51 425

转载 Docker方式启动tomcat,访问首页出现404错误

1、使用docker pull tomcat 从阿里云上默认下载了一个latest的版本的tomcat(版本是从阿里云上拉下的:8.5.50),进行相关网络端口映射,如下命令:docker run --name mytomcat01 -d -p 8888:8080 tomcat2、浏览器运行访问不了,报404,这个证明tomcat已经起来了,可能webapp路径下没有配置主页。3、输入docker ps 查看运行的容器id4、使用命令:docker exec -it 运行的tomc...

2020-07-12 22:46:44 283

转载 测试左移之代码评审

本文转载于https://www.cnblogs.com/yulia/p/7363438.html原文出自腾讯移动品质中心TMQhttp://mp.weixin.qq.com/s/0ZyIvSosAlebNM4bATftww导读最近两年,品质中心极力推动测试工作左移,以期能提前发现产品的问题,降低成本。笔者自认代码基础能力还不错,就想通过代码Review来提前发现一些Bug。多数项目中,代码评审工作是由开发同事相互执行的。但往往开发同事为了赶进度,并没有时间进行代码评审,导致...

2020-07-12 22:39:17 302

转载 Python命名规范

写代码一定要注意代码规范~~1.项目名称首字母大写+大写式驼峰,ProjectName2.模块名和包名全部小写+下划线驼峰module_name package_name3.类名称,异常首字母大写+大写式驼峰,class ClassName: ,ExceptionName4.全局变量、常量全部使用大写字母+下划线驼峰GLOBAL_VAR_NAME,CONSTANT_NAME5.方法名,函数名,其余变量,参数,实例全部小写+下划线驼峰method_name,...

2020-06-07 16:52:12 156

原创 错误处理 -- MySQL备份命令 mysqldump

写在前面:很多时候,一个小报错会耗费好几个小时,今天是其他同学遇到了这个小问题。想想自己也经常遇到,就决定写些报错处理~~ 时间久了,多总结,就会发现解决报错是有套路的。备份数据库,注意在Linux下输入命令:cccc-Pro:$ /usr/local/mysql/bin/mysqldump -uroot -pxxx testDB > testDB20200602.sqlmysqldump: [Warning] Using a password on the command l..

2020-06-03 00:08:06 1193

转载 63个Linux基础自测题

文章目录 第1部分 1、什么是Linux内核,有什么作用? 2、什么是shell,有什么作用? 3、安装Linux至少需要几个分区? 4、Swap分区的作用是什么? 5、什么是运行级别?Linux有几个运行级别? 6、如何更改默认启动级别? 第2部分 1、什么是Linux终端?Linux终端又称为什么? 2、默认情况下,Linux有几个虚拟终端?如何在不同终端之间...

2020-05-26 23:24:25 36288 2

原创 Docker 命令

***运行镜像***docker run -d -p 88:80 --name mynginx -v `pwd`:/usr/share/nginx/html nginx:1.13设置运行参数:-d 后台运行,不阻塞shell指令窗口;-p 指定内外端口映射,如:先写外部端88,后写内部端口80,二者做映射--name 指定名字,如果没指定,系统会默认给一个-v 映射文件:可以把里面的文件映射到外面,这样方便修改 MySQL data文件映射到外面,方便保存,以免丢失镜像...

2020-05-26 23:16:42 722

原创 Leetcode520. 检测大写字母

"""520. 检测大写字母给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: False注意: 输入是由大写和小写拉丁字母组成的非空单词。"""#.

2020-05-25 07:22:15 289

原创 Leetcode面试题17. 打印从1到最大的n位数

"""面试题17. 打印从1到最大的n位数输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数分析:方法一:用range()时间复杂度:O(N)空间复杂度:O(N)"""class Solution: def printNumbers(self, n): "..

2020-05-24 21:21:27 176

原创 Leetcode面试题04. 二维数组中的查找

面试题04. 二维数组中的查找难度简单在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26,

2020-05-24 11:00:55 399

原创 Leetcode面试题58 - I. 翻转单词顺序

面试题58 - I. 翻转单词顺序难度简单输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,...

2020-05-24 00:01:28 169

原创 Leetcode面试题58 - II. 左旋转字符串

面试题58 - II. 左旋转字符串难度简单字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"限制:1 <= k < s.l..

2020-05-23 23:50:04 152

原创 Leetcode26. 删除排序数组中的重复项

# 20200520print("begin")"""26. 删除排序数组中的重复项难度简单给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [.

2020-05-21 06:50:23 354

原创 Docker基础知识及安装

理论问题1 换了一个环境或者机器,代码跑不起来了2 支持5000qps = query per second,突然并发太大,hold不住了 解决 ---- 扩容,买机器,成本高概念Docker:Go语言编写的,”Build, ship and run any App, anywhere”一次编译,到处运行(python)将应用程序所需的环境,包括底层系统,如:linux,应用程序:tomcat、nginx、java,整体打包成一个模板,也就是镜像,实现跨平台的无缝对接。..

2020-05-21 01:11:48 285

空空如也

空空如也

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

TA关注的人

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