自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 allure报告如何让别人能够在其他电脑上查看

allure使用了两种方式来渲染页面。分别是 allure open 和 allure serve。前者用于在本地渲染和查看结果,后者用于在本地渲染后对外展示结果。这里使用allure open。即可自动打开浏览器展示渲染好的结果。也可以复制地址发送给其他人查看,但是如果停止代码运行了,端口就关闭了,链接就失效了,其他人就没办法查看了。

2024-09-09 16:40:20 115

原创 python使用requests向接口上传文件

【代码】python使用requests向接口上传文件。

2024-09-06 17:29:32 164

原创 requests.post怎么把数组转换为json传递

python会自动把data转换为json数据。

2024-09-06 14:23:52 108

原创 python强制删除非空文件夹

【代码】python强制删除非空文件夹。

2024-09-06 14:18:59 98

原创 python强制删除非空文件夹

【代码】python强制删除非空文件夹。

2024-09-05 17:15:24 381

原创 logging输出日志在文件、控制台的格式设置

formatter = logging.Formatter(fmt=“%(asctime)s%(message)s”, datefmt=‘%Y-%m-%d %H:%M:%S’):这行代码创建了一个Formatter对象,用来设置日志的显示格式。fh.setFormatter(formatter):这行代码将上面创建的格式化对象formatter应用到文件处理器fh上,意味着fh处理的日志信息将会按照formatter指定的格式来显示。将处理程序 fh 和 efh 添加到日志记录器 logger 上。

2024-09-05 14:13:40 314

原创 logging.Formatter(fmt=“%(asctime)s%(message)s“,datefmt=‘%Y-%m-%d %H:%M:%S‘)

logging.Formatter是Python中logging模块的一个类,用于定义日志记录的格式。当您创建一个logging.Formatter的实例时,可以指定日志消息的显示格式。%(asctime)s:这部分会被替换为一个时间戳,显示记录日志时的时间。默认情况下,时间戳的格式为 2003-07-08 16:49:45,896(年-月-日 时:分:秒,微秒)。其中 2023-04-05 12:34:56 是记录日志时的时间戳,This is a log message 是实际的日志消息内容。

2024-09-05 14:05:13 200

原创 logging.StreamHandler(stream=sys.stdout)

在logging.StreamHandler的构造函数中,stream参数允许你指定一个流对象,用于日志消息的输出。logging.StreamHandler(stream=sys.stdout) 是Python中的一个日志处理器(Handler),它用于将日志记录输出到指定的流(stream)。任何通过logger记录的信息都会被发送到标准输出。logging.StreamHandler 是 Python logging 模块中的一个日志处理程序类,它可以将日志输出到指定的流(如文件流、标准输出流等)。

2024-09-05 13:51:34 299

原创 python的logging模块setLevel(LEVELS.get(‘default‘,logging.NOTSET))

LEVELS.get(‘default’, logging.NOTSET) 尝试从名为 LEVELS 的字典中获取键为 ‘default’ 的值,如果该键不存在,则返回 logging.NOTSET。例如,如果一个日志记录器的级别设置为logging.NOTSET,而它的父级日志记录器的级别设置为logging.INFO,那么这个日志记录器将把所有的日志事件传递给父级日志记录器,并且只有那些级别为logging.INFO或更高级别的日志事件才会被处理和输出。这行代码的作用是设置日志记录器的级别。

2024-09-05 13:40:21 495

原创 base_dir.replace(‘\‘,‘/‘)报错SyntaxError: unterminated string literal

具体来说,base_dir.replace(‘’,‘/’)这行代码中,你试图将base_dir字符串中的反斜杠\替换为斜杠/,但是你的代码中反斜杠前的反斜杠是一个转义字符,它本应用来转义后面的字符。如果你的字符串是在一个多行文本或者一个原始字符串中,那么你不需要转义反斜杠。如果base_dir是一个包含文件路径的变量,它的值可能是从其他地方动态获取的,那么它可能已经包含了正确转义的反斜杠,你不需要做任何事情。总结:检查并确保反斜杠在字符串中被正确转义,如果是在字面值中使用,需要写为双反斜杠\。

2024-09-05 10:27:59 304

转载 Pytest+Request+Allure+Jenkins实现接口自动化

4、pytest.mark.parametrize,这里就是运用的DDT数据驱动的模式,从excel中一条一条的获取数据,然后执行同一条接口测试用例,excel中比如有3条数据,那么就表示这个案例依据每一条数据的参数,总共执行了三次。为了配置三个不同环境(测试、开发、生产)的URL,每个环境接口测试的URL是不一样的,设置这样一个枚举类,方便后面的程序根据不同的环境,获取不同环境的URL,里面的URL依据自己公司的地址修改,放到config目录。这是因为我们还没有集成allure进去。

2024-08-31 12:06:45 139

转载 Pytest+Allure使用示例教程

(-c:清空历史数据,-o:指定输出测试报告路径),如果使用allure serve allure-results,则会在系统默认目录下生成测试报告。Allure测试报告可以显示许多不同类型的附件,这些附件可以补充测试、步骤或结果。7.Timeline:时间轴选项卡可视化测试执行的回顾,allure适配器收集测试的精确时间,在这个选项卡上,它们相应地按照顺序或并行的时间结构排列。Allure允许测试报告中显示单个测试运行期间重新执行的测试的信息,以及一段时间内测试执行的历史,需与Pytest插件结合使用。

2024-08-31 11:51:29 46

转载 JMeter常数吞吐量定时器Constant Throughput Timer介绍

在JMeter中定时器用来设置延时和同步,以调节请求的发送速率,那么如何产生固定吞吐量的压力哪?可以使用常数吞吐量定时器(Constant Throughput Timer)来实现。下面举例来看看如何做到以固定吞吐量发送请求,创建一个JMeter脚本,加入了若干http请求,其中常数吞吐量定时器目标吞吐量设为每分钟60个,this thread only表示对单个线程生效。线程组线程数设为10,持续压测时长60秒,也就是1分钟。

2023-03-14 18:48:51 1251 1

原创 mysql学习笔记-子查询(嵌套查询)

子查询子查询(subquery),就是嵌套在其他查询中的查询。举例:订单存储在两个表中。每个订单包含订单编号、客户ID、订单日期,在Orders表中存储为一行。各订单的物品存储在相关的OrderItems表中。Orders表不存储顾客信息,只存储顾客ID。顾客的实际信息存储在Customers表中。现在需要列出订购物品RGAN01的所有顾客语句:SELECT cust_id FROM Orders WHERE order_num IN (SELECT order_num FROM OrderIte

2022-03-29 15:01:55 2129

原创 mysql-group by和having

group by语句:SELECT vend_id, COUNT(*) AS num_prods FROM Products GROUP BY vend_id;输出结果:vend_id num_prodsBRS01 3DLL01 4FNG01 2可以看到上述语句中,vend_id是表中现有的字段,num_prods为计算字段(用COUNT(*)函数建立)。GROUP BY子句实现按vend_id排序并按照每个vend_id分组数据。这就会对每个vend_id而不是整个表计算num_prods

2022-03-29 14:25:59 223

原创 mysql学习笔记-聚集函数

聚集函数有哪些函  数说  明AVG()返回某列的平均值COUNT()返回某列的行数MAX()返回某列的最大值MIN()返回某列的最小值SUM()返回某列值之和avg()函数语句:SELECT AVG(prod_price) AS avg_price FROM Products;AVG()通过对表中行数计数并计算其列值之和,求得该列的平均值。AVG()可用来返回特定数值列的所有行的平均值,也可以用来返回特定数值列的特定几行的平均值,如果要获取

2022-03-25 16:35:32 1122

原创 mysql学习笔记-数据处理函数

大概有哪些类型函数用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。返回特殊信息(如返回用户登录信息)的系统函数。文本处理函数语句:SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM Vendors ORDER BY vend_name;

2022-03-25 14:57:51 1415

原创 mysql学习笔记-算数操作符

算数操作符语句:SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM OrderItems WHERE order_num = 20008;输出结果:prod_id quantity item_price expanded_priceRGAN01 5 4.9900 24.9500BR03 5 11.9900 59.9500BNBG01 10 3.4900 34.9000BNBG02 1

2022-03-21 23:45:32 768

原创 mysql学习笔记-字段拼接

关于计算在SQL语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。但一般来说,在数据库服务器上完成这些操作比在客户端中完成要快得多。concat()函数语句:SELECT Concat(vend_name, ’ (’, vend_country, ‘)’) AS vend_title FROM Vendors ORDER BY vend_name;输出结果:vend_title——————————Bear Emporium (USA)Bears R Us (USA)Do

2022-03-21 22:10:10 2245

原创 mysql学习笔记-使用通配符模糊查找

什么是通配符通配符是用来匹配值的一部分的特殊字符,然后再字面值、通配符或两者组合构成完整的搜索条件。如果使用通配符,必须结合LIKE操作符使用。LIKE后跟的是完整的搜索条件。注意:通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。百分号(%)通配符语句:SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE ‘Fish%’;输出结果:prod_id prod_nameBNBG01 Fish bea

2022-03-21 13:12:38 1015

原创 mysql学习笔记-where高级查询

AND语句:SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = ‘DLL01’ AND prod_price <= 4;输出结果:prod_id prod_price prod_nameBNBG02 3.4900 Bird bean bag toyBNBG01 3.4900 Fish bean bag toyBNBG03 3.4900 Rabbit bean bag toy要对不止一个列进行过滤,可以使

2022-03-08 21:13:06 569

原创 mysql学习笔记-where基础语句,过滤数据

WHERE过滤语句:SELECT prod_name, prod_price FROM Products WHERE prod_price = 3.49;输出结果:prod_nameprod_priceFish bean bag toy3.49Bird bean bag toy3.49Rabbit bean bag toy3.49在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤,WHERE子句要在表名(FROM子句)之后给出,where后

2022-03-06 14:26:28 689

原创 mysql学习笔记-数据排序

按照单个列排序语句:SELECT prod_name FROM Products ORDER BY prod_name;输出结果:prod_name————————12 inch teddy bear18 inch teddy bear8 inch teddy bearBird bean bag toyFish bean bag toyKing dollQueen dollRabbit bean bag toyRaggedy AnnORDER BY子句必须是SELECT语句中最后

2022-03-05 21:13:06 1795

原创 mysql学习笔记-SELECT基础语句

查询单个列语句:SELECT prod_name FROM Products;输出结果(结果是无序的):prod_nameFish bean bag toyBird bean bag toyRabbit bean bag toy8 inch teddy bear12 inch teddy bear18 inch teddy bearRaggedy AnnKing dollQueen doll上述语句用SELECT语句从Products表中检索一个名为prod_name的列。所要查询

2022-03-05 15:22:08 284

原创 mysql学习笔记-什么是数据库

mysql学习笔记-入门

2022-03-05 14:09:00 309

转载 Fiddler 抓不到浏览器包的常见原因

一、代理未设置成功fiddler 之所以能抓包,本质上是因为浏览器/App/软件设置了代理为 fiddler。一旦遇到抓不到包的情况,首先应排查浏览器代理是否设置正确。以 Chrome 为例,代理设置为:右上角菜单按钮 > 设置 > 高级 > 系统 > 打开您计算机的代理设置确保代理是打开并正确设置为 Fiddler,以下图为例使用代理服务器开关都是关的,fiddler 是不可能抓到 Chrome 包的另外有一个坑也许有部分学员会遇到,那就是需要****所以使用的 VPN

2021-05-03 16:09:37 6584

原创 python百例练习之第十九例-sorted()结合itemgetter排序

问题您需要编写程序以升序对(名称,年龄,身高)元组进行排序,其中名称是字符串,年龄和身高是数字。元组由控制台输入。排序标准是:1:根据名称排序;2:然后根据年龄排序;3:然后按分数排序。优先级是名称>年龄>得分。如果给出以下元组作为程序的输入:Tom,19,80John,20,90Jony,17,91Jony,17,93Json,21,85然后,程序的输出应为:[(‘John’,‘20’,‘90’),(‘Jony’,‘17’,‘91’),(‘Jony’,‘17’,‘93

2020-05-27 11:05:32 741

原创 python百例练习之第十八例-re.search

问题网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。以下是检查密码的标准:(分析:也就是说我们对于大写字母、小写字母、数字、符号这四种类型的字符串,只要检查到一个就好,不需要全部都找到)[az]之间至少1个字母[0-9]之间至少1个数字[AZ]之间至少1个字母[$#@]中的至少1个字符最小交易密码长度:6交易密码的最大长度:12您的程序应接受一系列用逗号分隔的密码,并将根据上述条件进行检查。符合条件的密码将被打印,每个密码之间用逗号分隔。例如果输入以下密

2020-05-26 14:39:34 5159

原创 python百例练习之第十七例-连续输入和if not

问题编写一个程序,该程序根据控制台输入的交易日志来计算银行帐户的净额。事务日志格式如下所示:D 100W 200D表示存款,W表示提款。假设将以下输入提供给程序:D 300D 300W 200D 100然后,输出应为:500提示:如果将输入数据提供给问题,则应假定它是控制台输入。程序第一种:total = 0while True: #利用while保证不断输入 a = input() #input好像是能自动识别换行符来确定一次输入的结束,因为我把上面的输入复制

2020-05-26 12:01:59 478

原创 python百例练习之第十六例-列表推导

问题使用列表推导对列表中的每个奇数取平方。该列表由一系列逗号分隔的数字输入。假设将以下输入提供给程序:1,2,3,4,5,6,7,8,9然后,输出应为:1,9,25,49,81提示:如果将输入数据提供给问题,则应假定它是控制台输入。程序以下两种方法都能够实现上面的问题。第一种:a = input('请以逗号分隔输入:')b = [int(m) for m in a.split(',')]m = []for x in b: if x%2 != 0: m.ap

2020-05-21 16:27:00 2017

原创 python百例练习之第十五例-%占位符

问题编写一个程序,以给定的数字作为a的值来计算a + aa + aaa + aaaa的值。假设将以下输入提供给程序:9然后,输出应为:11106提示:如果将输入数据提供给问题,则应假定它是控制台输入。程序两种答案都能够实现,两种答案思路相同,但是用到的工具不同。第一种如下,就是通过字符串的连接形成需要的字符串然后再转换成int型计算即可。a = input('请输入:')b = int(a) + int(a+a) +int(a + a +a) + int(a + a + a + a)p

2020-05-21 14:46:50 604

原创 python百例练习之第八例-isalpha()、isdigit()、isupper()、islower()方法

问题编写一个接受句子并计算字母和数字数量的程序。假设将以下输入提供给程序:hello world! 123然后,输出应为:LETTERS 10DIGITS 3提示:如果将输入数据提供给问题,则应假定它是控制台输入。程序s = input()d={"DIGITS":0, "LETTERS":0} #因为要分别按字母和数字去数数量,字母对应一个数量,数字对应一个数量,正好形成两个键值对for c in s: if c.isdigit():#检测字符串是否只由数字组成。

2020-05-19 17:26:13 1317

原创 python百例练习之第七例-数值类型转换以及字符串的使用

问题编写一个程序,它将找到介于1000和3000之间的所有此类数字(均包括在内),以使该数字的每个数字均为偶数。所获得的数字应以逗号分隔的顺序打印在一行上。(理解:这个例子很简单,但是需要字符串和整型换来换去,并利用索引去取字符串里面的字符)提示:如果将输入数据提供给问题,则应假定它是控制台输入。代码a = []for i in range(1000,3001): n = str(i) if int(n[0]) %2 ==0 and int(n[1]) %2 ==0 and i

2020-05-18 15:08:27 2053

原创 python百例练习之第五例-二进制转化为十进制

问题编写一个程序,该程序接受以逗号分隔的4位二进制数字序列作为输入,然后检查它们是否可被5整除。被5整除的数字将以逗号分隔的顺序打印。(理解:可以通过取余并对余数进行操作来做整除判断)例:0100,0011,1010,1001 (理解:代码中需要将二进制变成十进制)然后输出应为:1010注意:假设数据是通过控制台输入的。提示:如果将输入数据提供给问题,则应假定它是控制台输入。代码c = input('请以逗号为间隔输入:').split(',')a = [] #创建一个空列

2020-05-18 14:12:19 1774 1

原创 python百例练习之第四例-sort()、sorted()

问题编写一个程序,该程序接受一系列由空格分隔的单词作为输入,并在删除所有重复的单词并将其按字母数字顺序排序后打印这些单词。假设将以下输入提供给程序:hello world and practice makes perfect and hello world again然后,输出应为:again and hello makes perfect practice world提示:如果将输入数据提供给问题,则应假定它是控制台输入。我们使用set容器自动删除重复的数据,然后使用sorted()对数据进行

2020-05-18 11:35:45 1574 1

原创 python百例练习六-列表推导

问题编写一个程序,该程序将X,Y两位数字作为输入并生成一个二维数组。数组的第i行和第j列中的元素值应为i * j。注意:i = 0,1 …,X-1; j = 0,1…,Y-1。例:假设将以下输入提供给程序:3,5然后,程序的输出应为:[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]注意:如果将输入数据提供给问题,则应将其假定为以逗号分隔形式的控制台输入。程序通俗的理解了一下二维数组,一个数组里面套着多个数组,里面的数组数量就是列数,也就是一个数组是一个列;每个数组里面的

2020-05-17 22:25:45 859

原创 python进阶学习笔记-映射的弹性键查询

defaultdict()当某个键在映射里不存在,但是通过这个键读取值的时候能得到一个默认值,也就是返回了一个默认值。有两个方法:一个是通过 defaultdict 这个类型而不是普通的 dict,另一个是给自己定义一个 dict 的子类,然后在子类中实现__missing__ 方法。具体而言,在实例化一个 defaultdict 的时候,需要给构造方法提供一个可调用对象,这个可调用对象会在 getitem 碰到找不到的键的时候被调用,让 getitem 返回某种默认值。eg:"""创建一个从单词到

2020-05-17 14:30:19 178

原创 python进阶学习笔记-字典推导

字典推导字典推导是从列表推导和表达式生成器得来的,所以用法一样,只不过参数数量不同。字典推导(dictcomp)可以从任何以键值对作为元素的可迭代对象中构建出字典。eg:>>> DIAL_CODES = [ #一个承载成对数据的列表,它可以直接用在字典的构造方法中... (86, 'China'),... (91, 'India'),... (1, 'United S...

2020-05-08 17:30:51 221

原创 python进阶学习笔记-抽象基类和可散列

什么是泛映射类型collections.abc 模块中有 Mapping 和 MutableMapping 这两个抽象基类,它们的作用是为 dict 和其他类似的类型定义形式接口。

2020-05-08 17:04:49 166

原创 python进阶学习笔记-双向队列deque

列表用作队列利用 .append 和 .pop 方法,我们可以把列表当作栈或者队列来用(比如,把 .append和 .pop(0) 合起来用,就能模拟栈的“先进先出”的特点)。但是删除列表的第一个元素(抑或是在第一个元素之前添加一个元素)之类的操作是很耗时的,因为这些操作会牵扯到移动列表里的所有元素。双向队列collections.deque 类(双向队列)是一个线程安全、可以快速从两端添加...

2020-05-07 14:44:40 910

空空如也

空空如也

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

TA关注的人

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