- 博客(127)
- 收藏
- 关注
原创 发送http请求时,以form-data的格式作为requests的参数
表示一个文件对象,通过 Python 的 io 模块打开了一个名为 'img/23.jpg' 的文件。这个对象允许你以文件流(stream)的形式来读取文件的内容,并且保留了文件的元数据(例如文件名、文件路径等)。你可以使用这个文件对象来进行文件读取操作,也可以将它传递给其他需要文件对象作为参数的函数。表示一个 bytes 类型的对象,是 Python 中用于表示二进制数据的一种数据类型。是表示二进制数据的对象,两者在概念上和用途上有所不同。前者适用于文件的 I/O 操作,后者适用于处理二进制数据。
2024-05-24 17:55:36
352
原创 整数和二进制相互转换,二进制相加计算
在这个例子中,从低位到高位分别为:1+1=10(进位1),1+0+1=10(进位1),0+0+1=1(无进位),1+1=10(进位1),0+0+1=1(无进位)。将二进制数10100转换为十进制数(整数20)的方法是:从右向左按照权值展开,对每一位上的数值乘以相应的权值,然后将所有结果加起来。整数7转换成二进制的方法是:不断获取除以2后的商,直到商为0,把每一步得到的余数倒序排列得到的就是对应的二进制数。7除以2的商为3余1, 3除以2的商为1余1, 1除以2的商为0余1。
2023-05-11 11:46:33
1182
1
原创 在 f-string 中使用大括号 {} 来表示占位符时,如果要在字符串中嵌套大括号,应该使用双大括号 {{}} 来表示
来表示占位符时,如果要在字符串中嵌套大括号,应该使用双大括号。在 f-string 中使用大括号。
2023-04-19 13:44:57
677
原创 安卓手机用WIFI无线调试adb
这样代表已连接成功, 505e894。505e894是udid,device是设备,adb disconnect 192.168.1.39:5555 断开设备连接。2、打开电脑CMD,输入命令adb start-server开启adb服务。例如: adb connect 192.168.1.39:5555。1、首先将电脑和手机连接同一个WIFI,并插上数据线。3、输入adb devices 查询已连接的设备。2、查看无线调试详情页提供配对电脑端的ip和端口。1、打开开发者选项 -> 打开无线调试。
2023-03-01 13:42:19
5828
1
原创 Appium 踩坑记录
另外在写测试用例时,在测试用例执行结束后,最好还是要主动断开一下session的,调用下 driver.quit() 也没那么复杂,毕竟有始有终没bug,心情舒畅不秃头,哈哈哈哈。解决问题得先知道问题原因是什么。:在 appium 启动后,上一个 session 没有主动断开也没有 driver.quit() 掉,然后用pycharm又运行一个用例导致再启动一个 session,由于上一个连接未中断,一直被占用着,等到上个 session 超时一分钟后被自动断开,影响了新的 session。
2023-03-01 10:43:33
772
4
原创 eval把字符串转为字典时报错: name ‘false‘ is not defined 解决方法
【代码】eval把字符串转为字典时报错: name 'false' is not defined 解决方法。
2023-02-23 18:14:47
1198
原创 截图方法get_screenshot_as_file()注意点
get_screenshot_as_file()截图的方法中不允许存在以下符号 / : * ? # ” < > |
2022-11-07 10:34:36
1444
原创 python列表逆序的方法
a = [0,1,2,3,4,5,6,7,8,9]b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象b = a[1:3] 那么,b的内容是 [1,2]当i缺省时,默认为0,即 a[:3]相当于 a[0:3]当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]当i,j都缺省时,a[:]就相当于完整复制一份a了b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.所以a[i:j:1]相当于a[i:j]当s<0时.
2022-04-28 10:40:23
1777
原创 jsonpath中多条件提取和过滤提取
在JsonPath中创建表达式之前,您必须了解两个重要的符号。?:问号,标记表达式的开头。使用的语法[?(表达)][? (Expression)]@: 在符号处表示正在处理的当前节点。语法使用$.books[?(@.price > 100)3、多条件时$.data[?(@.attribute ==1&&@.productKind==2)].productId...
2022-04-25 15:29:56
3948
原创 pytest框架执行遇到的报错
xlrd.biffh.XLRDError: Excel xlsx file; not supported原因是最近xlrd更新到了2.0.1版本,只支持.xls文件。所以会报错。可以安装旧版xlrd,在cmd中运行:pip uninstall xlrdpip install xlrd==1.2.0也可以用openpyxl代替xlrd打开.xlsx文件———————————————— for lineno, line in enumerate(line_iter): Unico.
2022-04-25 15:20:31
532
原创 python的的__dict__属性
将字典转换成对象的小技巧bokeyuan = {"b": 1, "o": 2, "k": 3, "e": 4, "y": 5, "u": 6, "a": 7, "n": 8, }class Dict2Obj: # def __init.
2022-04-24 16:59:17
1044
原创 python类名、类方法(cls)修改类变量的值
# 通过类对象是无法修改类变量的值的,本质其实是给类对象新添加 name 和 age 这 2 个实例变量。不会影响类的其它实例化对象,更不会影响同名的类变量。 # 和类变量不同,实例变量只能通过类对象名访问,无法通过类名访问。 # 通过cls和类名修改类变量的值,会修改同名的类变量,会影响所有的实例化对象class Person: name='jerry' age='20' def __init__(self, name, age): ...
2022-04-22 19:03:32
2403
原创 把一个逗号分隔的很长的字符串转换为列表和eval函数的简介和语法
1 eval函数的简介和语法:eval()函数用来执行一个字符串表达式,并返回表达式的值。还可以把字符串转化为list、tuple、dict。eval函数的语法:eval(expression[,globals[,locals]])参数:expression:表达式。globals:变量作用域,如果被提供,必须是一个字典对象。locals:变量作用域,如果被提供,可以说任何映射对象。2 eval()函数使用实例:1 字符串转换成列表:a="[1,2,3,4,5]"b=e.
2021-12-30 16:00:01
425
原创 python调用jar包
1、下载JPype1版本前要先使用命令查看匹配什么版本在CMD执行:python -m pip debug --verbose2、JPype1 (下载链接 https://pypi.org/project/JPype1/#files)下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype3、在下载文件放置的路径下执行:pip installJPype1-1.3.0-cp38-cp38-win_amd64.whl 即可...
2021-11-30 17:32:43
308
原创 非GUI运行Jmeter,查看生成的jtl文件没有响应数据的解决办法
Linux服务器用命令执行了jmeter脚本,在本地查看结果时发现结果树种的“请求、响应数据”都显示为空!1、从服务器到处rmw_*.jtl结果放在本地jmeter中查看,发现数据都显示空2、接下来怎么办呢?修改bin目录下的user.properties文件,追加配置:(主机和从机都要修改)jmeter.save.saveservice.output_format=xmljmeter.save.saveservice.response_data=truejmeter.sav.
2021-11-18 17:17:52
3036
原创 fiddler域名重定向的方法
1入口:Ruls->Customize Rules... 此时打开了customrules.js窗口2在窗口中找到OnBeforeRequest方法方法一:3在方法的第一个if前增加代码:oSession.fullUrl = oSession.fullUrl.Replace("a","b");a重定向到ba,b为域名2、方法二...
2021-10-25 18:52:45
716
原创 requests请求响应结果转为中文
那么,问题来了,\u表示的那一 串unicode编码, 怎么转换成中文,可以用下面的命令print(res.text.encode().decode("unicode_escape"))那么问题来了,这个unicode-escape什么来的呢在python中,对于unicode存储时,可以采用另一种方法:将unicode的内存编码值进行存储,读取文件时在反向转换回来。这里就采用了unicode-escape的方式解决办法:print(res.conten...
2021-10-21 19:22:45
1119
原创 python中decode()和encode()的使用
对于很多人来说,python的中字符转码是一件很头疼的事情,本来期望结果输出的是中文,结果来一段像这样\xe4\xbd\xa0\xe5\xa5\xbd像是乱码的字符串。由于学python没多久,昨天使用python的时候,就遇到这种问题,现在来深入研究下与之相关的encode()和decode()函数,和如何把如乱码般的字符串转成中文。encode()和decode()都是字符串的函数,可直接查看关于python字符串章节的官方文档:https://docs.python.org/3/libra.
2021-10-21 18:56:57
636
原创 tcp的TIME_WAIT状态太多了,导致响应时间过长
背景介绍 为了摸底项目的性能,需要进行性能测试。经过一番调研之后,决定使用基于腾讯云TKE的分布式jmeter进行压测,好处是有jmeter-suite可用,搭建环境方便;容器化部署可以方便的增加pod来提升压力。 但是在实际施压的时候,发现请求量上不去,达不到压测效果。经定位发现,容器pod上存在大量TIME_WAIT,而实际在传输数据的连接远小于设置的并发线程数:netstat -n | awk '/^tcp/ {++state[$NF]} END {for(ke...
2021-10-09 19:26:50
409
原创 全链路压测、单接口压测、多接口混合压测和性能测试一些相关的概念
根据压测的场景不同,或者压测的目的不同,我们会选择不一样的压测方式来进行压测,我梳理了下大概的压测的方式,主要有以下三个。1.全链路压测2.单接口压测3.多接口混合压测 全链路压测呢,近几年 比较火,比如阿里啊,京东等公司都在做这个,全链路的压测呢,比较热门,基于用户的使用链路场景,或者系统的调用链路场景压测,更加贴近真实的用户场景。更多的去发现系统的问题。各个链路相关的接口的问题都能直接暴露出来。 单接口压测呢,就是针对单一的接口进行压测,比如,我们有一个登录接..
2021-10-09 14:05:57
3725
原创 Jmeter报错合集
jmeter压测-"java.net.SocketException: Socket closed"解决方法java.net.SocketException: Socket closedat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(Unknown Source)at java.net.SocketInputStream.read(Unknown S.
2021-10-09 13:47:38
226
原创 jmeter压测学习-监听器之Hits per Second
动态监听单位时间的点击率,也就是触发的请求数。其中横坐标是运行时间,纵坐标是HPS值。点击率波动较大,且不能持续上升。说明性能很不稳定1、jmeter中搜索插件5 Additional Graphs 安装5 Additional Graphs:主要显示吞吐量,连接时间,每秒的点击数等...
2021-10-09 09:54:47
2478
原创 2021-09-28
Java提供了两种变量类型:基本类型和引用类型基本类型包括整型,浮点型,布尔型,字符型。变量可重新赋值,等号是赋值语句,不是数学意义的等号。常量在初始化后不可重新赋值,使用常量便于理解程序意图。基本数据类型基本数据类型基本数据类型是CPU可以直接进行运算的类型。Java定义了以下几种基本数据类型:整数类型:byte,short,int,long浮点数类型:float,double字符类型:char布尔类型:boolean引用类型引用类型除了上述基...
2021-09-28 19:12:32
88
原创 第一个Java程序
在一个Java程序中,你总能找到一个类似:public class Test01 { ...}的定义,这个定义被称为class(类),这里的类名是Test01,大小写敏感,class用来定义一个类,public表示这个类是公开的,public、class都是Java的关键字,必须小写,Test01是类的名字,按照习惯,首字母T要大写。而花括号{}中间则是类的定义。注意到类的定义中,我们定义了一个名为main的方法: public static void main(S..
2021-09-24 16:07:23
80
原创 charles Windows版抓包工具
资源绝对好用!!!官方下载地址:https://www.charlesproxy.com/latest-release/download.do破解地址:https://www.zzzmode.com/mytools/charles/ Charles教程https://www.axihe.com/charles/charles/setting.html
2021-09-24 14:46:48
105
原创 jmeter请求https接口需要安装证书
背景:对于https类型的接口,使用Jmeter进行测试时,需进行证书导入。步骤:1、证书下载:(1)使用Chrome打开需要被测地址,点击地址栏前面的小锁,如下图:选择“证书”----“详细信息”----“复制到文件”:然后根据证书导出向导,选择要使用的格式为“DER 编码二进制x.509(.CER)(D)”...
2021-09-24 14:30:20
1323
原创 Jmeter分布式部署
1、使用Xshell连接服务器在使用Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xsheel工具进行文件传输1:首先连接上一台Linux主机2:输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行 yum -y install lrzsz命令进行安装。yum -y install lrzsz3:安装成功后,输入rpm命令确认是否正确安装4: 使用 rz -y命令进行文件上传,此时会弹出上传的窗口:5:选择要......
2021-09-18 11:14:10
380
原创 Pycharm 创建一个项目的界面说明
Pycharm确实是一个非常不错的Python开发IDE,尤其对于初学者而言。打开新建项目1.选择新建一个Pure Python项目,新建项目路径可以在Location处选择。2.Project Interpreter部分是选择新建项目所依赖的python库,第一个选项会在项目中建立一个venv(virtualenv)目录,这里存放一个虚拟的python环境。这里所有的类库依赖都可以直接脱离系统安装的python独立运行。3.Existing Interpreter关联已经存..
2021-08-30 23:00:05
1363
原创 python中list、元组、字典相互转换
Python面试题:如何判断字典a在字典b中已知一个dict 比如a = {"a":1},另一个dict比如为b = {"a":1,"b":2},如何判断a是否在与b中。一般在接口测试的时候,返回的参数比较多的情况,如果一个个字段去校验,会比较麻烦,那么如何直接拿一个期望的字典放键值对,判断结果里面是否包含期望的值set实现set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。set的issubset方法,a.issubset(b) :判断.
2021-08-23 00:13:39
160
原创 递归函数代码执行流程
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。# -*- coding: utf-8 -*-def move(n, a, b, c): print("开头",n,a,b,c) if n == 1: print('%s --> %s' % (a, c)) # 直接搬过去 else: """第一个函数递归调用,直到满足条件退出递归调用,才执行下面的代码, 后面的代码执行次数和函数
2021-07-09 10:31:35
934
原创 python中%d %2d %02d %-2d% %.2d的区别
python中%d %2d %02d %-2d% %.2d的区别%d就是普通的输出了整形数 %2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。%02d,和%2d差不多,只不过左边补0%-2d将数字按宽度为2,采用左对齐方式输出,若数据位数不到2位,则右边补空格%.2d 输出整形时最少输出2位,如不够前面以0占位。如输出2时变成02,200时只输出200;输出浮点型时(%.2f)小数点后强制2位输出,会四舍五入。比如:num = 1print("%d.
2021-07-05 16:09:12
4508
原创 脚本开头申明的意思:#!/usr/bin/env python3# -*- coding: utf-8 -*-
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:#!/usr/bin/env python3# -*- coding: utf-8 -*-第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,
2021-07-05 15:18:29
679
原创 python 字符串和decode()解码,encode()编码
计算机系统通用的字符编码工作方式:计算机是有自己的工作区的,这个工作区被称为“内存”。数据在内存当中处理时,使用的格式是Unicode,统一标准。在计算机内存中,计算机使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。所谓的编码,其实本质就是把str(字符串)类型的数据,利用不同的编码表,转换成bytes(..
2021-07-05 12:18:10
296
原创 airtest之设备管理device
初始化 device如果设备没有被初始化的话会进行初始化,并把初始化的设备作为当前设备。 用法如下: 123456789 def init_device(platform="Android", uuid=None, **kwargs): """ Initialize device if not yet, and set as current device. :param platform: Android, IOS or W
2021-07-02 17:47:58
1186
2
原创 iproxy工具的作用
1、安装usbmuxdbrew install usbmuxd2、iproxy,该工具会将设备上的端口号映射到电脑上的某一个端口,例如:iproxy 8200 8100以上命令就是把当前连接的手机设备的8100端口映射到电脑的8200端口,那么想和设备8100端口通信,直接和本地的8200端口通信就可以了。因此,SSH连接设备就可以这样连接了:ssh -p 8200 root@127.0.0.1这样就再也不用依赖Wi-Fi了,而且反应很流畅,当然此工具不仅可以用于SSH,也可以映射.
2021-06-25 15:39:34
3830
1
原创 钩子函数收集测试结果
def pytest_terminal_summary(terminalreporter, exitstatus, config): '''收集测试结果''' # print(terminalreporter.stats) print("total:", terminalreporter._numcollected) print('passed:', len([i for i in terminalreporter.stats.get('passed', []) if i.w
2021-06-24 11:20:50
135
转载 Python 字符串前面加u,r,b,f的含义
1、字符串前加 u例:u"我是含有中文字符组成的字符串。"作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。2、字符串前加 r例:r"\n\n\n\n” # 表示一个普通生字符串 \n\n\n\n,而不表示换行了。作用:去掉反斜杠的转义机制。(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。 )应用:常用于正则表达式,对应.
2021-06-18 15:37:53
197
原创 通过jenkins自动从gitlab上获取代码,配置自动化测试任务
自动化测试脚本开发完成以后,希望可以把脚本放在公共的环境下提供一个入口供大家一起使用,目前最好的解决方案就是需要把代码部署在Jenkins上,下面看下如何在Jenkins配合自动化测试任务; 1.首先我们需要搭建Jenkins的运行环境; 2.环境搭建完成最重要的是安装插件,插件的安装需要根据自己实际的使用情况安装,没有必要大而全的安装,这样很容易引入一些没有必要的麻烦,比如说插件的漏洞,会让你服务器遭受到不必要的攻击; 目前我的代码托管在公司内部的gitlab,首先我需要在Jenki
2021-05-17 16:36:21
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人