自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python正则表达式笔记

1、括号的含义[]匹配的具体的值{}匹配值的位数()提取的范围r'[ab]' 代表匹配 a或者br'[a]{2}' 表示 匹配连续的两个aar'([a]{2}b)' 表示匹配 aab ,并且可以使用group(1) 或者groups()取值2、group(num)和groups()的区别group(num)中必须带上整型参数,表示取表达式中的第几个圆括号()内匹配到的值groups()会以元组格式返回所有匹配到的值3、中括...

2022-05-07 10:00:59 1162

原创 python接口自动化测试的两种思路

思路一、维护脚本中的接口api1、每个接口写一个方法,请求数据放在yaml或者json文件中,接口与数据对应,再使用一个测试方法(用例,断言)调用这个接口,根据返回结果,写断言。2、一条用例需要调用多个接口的,写一个测试类,类中的方法去调用接口方法思路二、维护excel1、直接将用例、接口、数据、断言放在excel中,使用openxl读取excel然后组装请求数据,去请求excel中的url,再根据excel中的预期结果对接口响应结果进行断言2、一条用例需要调用多个接口的,写一个shee

2022-04-08 18:07:01 1716

原创 yaml 变量的使用

1、包含和不包含检查点包含”和“不包含”检查点是将接口的返回结果作为一个String类型来看,检查所有返回内容中是否“包含”或“不包含”指定的内容。2、

2022-03-25 15:43:23 3520

原创 python 接口自动化之用例变量参数化(参数化处理器)

场景:有环境变量需要替换到用例数据中去,解决的问题:多条接口用例的通用配置和token之类的参数要写在每条测试用例中,替换不方便。场景一:字符串中只有一个变量需要替换原始数据:(数据来源:execl中读取,或者数据库中读取出来的,都可以)params= '{"_ver":"3.18.1","_ct":"101","token":${token}'在进行接口请求前,需要把数据中的变量${token} ,替换成环境变量,${} 只是一个特殊的标识符,目的的方便使用正则表达式匹配,换成你自

2022-03-16 16:30:24 3279 3

原创 python log 二次封装

logging模块普通使用思路1、创建一个日志记录器logger对象2、设置日志级别3、创建一个写文件的日志处理器handler,并设置日志输出格式4、创建一个输出到控制台的日志处理器handler,并设置日志输出格式上代码# -*- coding: utf-8 -*-import logging# 创建日志记录器loggermy_logger = logging.Logger('first_logger')# 定义日志处理器handler,决定把日志发到文件中handle

2022-03-04 17:40:12 431

原创 接口测试API 用例、数据、接口分离

目的:完成接口自动化测试,最重要的就是用例、数据、接口的分离现在模拟一个登录接口的测试,原始请求:import pytest,json,requestsdef test_login(): url = "https://blog.csdn.net/" payload = json.dumps({ "tel": "123456", "password": "123456" }) headers = { 'Conten

2022-02-11 15:37:08 805

原创 Sublime Text4 下载网页插件(view in bower),并设置快捷键

1、Ctrl + Shift + P ,唤起Package Control2、在弹窗中输入 view in browser,点击下载或者回车键下载3、点击 首选项---Package Setting ——view in browser ——settings user4、输入{ "nt": { "win32": { "chrome": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe...

2021-12-27 21:36:55 553 6

原创 python 3.9 安装RSA解密模块 pycryptodome(2021/12/22亲测可用)

1、cmd 直接安装pip installpycryptodome运行结果:进入该目录下将该目录下的 改成然后直接导入使用即可import Cryptofrom Crypto.PublicKey import RSA

2021-12-22 15:37:07 1798

原创 python web框架完善网页路由

基础框架:import timedef login(): return '这是登录页,当前时间:{}'.format(time.ctime())def index(): return '这是主页,当前时间:{}'.format(time.ctime())def application(env,start_response): # 调用传递过来的方法,返回响应状态码和头部信息 start_response('200 OK',[('Content-Type','text/html;cha

2021-12-20 20:43:47 796

原创 python 装饰器

目的:在不动原函数的情况下,对函数进行修改,比如进行权限验证。一、无参数传递的函数加装饰器二、有参数的函数加装饰器(单个参数或者多个参数)三、有参数、有返回值的函数加装饰器四、对一个参数使用多个装饰器装饰五、在装饰器中传递参数

2021-12-17 11:44:27 867

原创 python wsgi学习笔记

一、大致思路:1、创建监听套接字2、绑定本地信息(IP和port)3、使用listen改变监听状态4、等待客户端(浏览器)的链接,并创建为客户端服务的服务套接字(使用多进程调用服务方法为客户端服务)5、服务方法:获取客户端发送的数据>>>使用正则表达式匹配客户端发送的信息,获得服务端需要的信息>>>访问静态网页,直接本地匹配资源地址,读取并发送给客户端(浏览器)>>>访问动态资源,调用框架的application

2021-12-16 17:49:09 617

原创 循环的使用思路

今天写了个循环,被同事疯狂嘲笑,记录下来,以后有谁再这么写,嘿嘿。我写的:(有一些没写出来)思路:一直循环取值,满足条件则终止循环while Ture: print(a) if a == 3: break语法上来说,是没有问题的,但是从来都不会这么做正确的思路:满足条件才循环比如:while a != 3: print(a)...

2021-12-09 18:52:11 209

原创 python property 函数

一、没有property函数一般在面向对象的编程中,私有属性不暴露在外面,而是通过一个接口函数去设置,通常一个私有属性对应两个函数方法,还可以加一个删除的方法class Test(): def __init__(self): self.name= 'handong' # 私有属性 self.__id = '001' def get_id(self): return self.__id def...

2021-12-08 12:00:12 342

原创 python epoll socket创建服务器,并使用本地浏览器访问

1、环境 python3 、 ubuntu系统(windows系统下没有epoll库,也不支持epoll)2、思路 1、创建监听套接字,2、绑定本地IP和port信息,本地信息使用元组格式3、使用listen改变监听状态,设置监听容量 4、创建epoll对象,将监听套接字放入epoll中。 5、创建一个空字典放epoll返回的信息6、循环取epoll返回的信息 ...

2021-12-03 14:11:54 329

原创 python socket实现浏览器访问本地文件资源即静态网页(TCP)

思路: 1、创建监听套接字 2、绑定本地IP和port信息 3、使用listen改变监听状态 4、接收服务端链接,创建为客户端服务的客户端套接字 5、获取服务端发送的信息 6、使用正则表达式匹配客户端发送的信息,获得服务端需要的信息 7、根据匹配结果,在本地进行操作 8、发送匹配后的本地资源给客户端 9、关闭客户端套接字,结束服务,等待下一个客户端链接。

2021-11-30 14:08:01 2864

原创 python创建进程池

一、依赖的三方包multiprocessing二、思路 1、创建进程池,并设置进程池容量 2、循环往进程池中放入进程 3、关闭进程池,不再接收新的进程请求 4、等待进程池中所有子进程执行完成import multiprocessing,osfrom time import sleepdef demo(i): '''子进程''' print('{:-^30}开始执行,进程号为{}'.f...

2021-11-25 10:54:37 936

原创 python 通过队列实现进程之间的数据共享

一、使用的三方库multiprocessing ; os二、进程之间默认是不能进行数据共享的,要想实现数据共享,可以通过队列来实现进程之间的数据共享。import multiprocessing,osdef song(num,a,que): # 打印进程号 print('song进程:{}'.format(os.getpid())) for i in range(num): a=a+1 #往队列中添加数据 ...

2021-11-24 16:16:47 906

原创 python threading同一进程下线程共享全局变量

一、共享可变类型参数 可变类型(列表、字典、可变集合) 要共享的是可变类型参数,直接将该参数参数通过args传入线程中去,其中sleep函数的作用是降低运行速度,方便打印出想要的结果import threadingfrom time import sleepdef demo1(a,num): sleep(0.5) #为a增加元素 for i in range(num): a.append(i) print('de...

2021-11-24 15:06:37 2319

原创 python实现多协程、多线程、多进程

一、依赖的三方库 协程库:gevent线程库: threading 进程库: multiprocessing二、多协程import gevent,timedef demo1(num): for i in range(num): print('协程1:{:-<30}'.format(111)) #模拟耗时操作,geven创建的t协程遇到耗时操作后会切换到其它协程 gevent.s...

2021-11-23 18:36:43 453

原创 python使用global进行申明的前提

在函数中对函数全局变量进行修改的时候,到底是否需要使用global进行申明,要看是否对全局变量的指向进行了修改。如果修改,就必须使用global申明。简单来说:不可变类型的使用必须申明,可变类型的使用不用申明。例如:不可变类型(数字、字符串、元组、不可变集合)可变类型(列表、字典、可变集合)a=1b=[1]def demo1(): global a a+=1def demo2(): b.append(2)if __n...

2021-11-21 21:16:52 624

原创 python使用socket在同一局域网下不同电脑传输数据(tcp)

本次使用tcp协议传输数据(即套件字选择tcp对应的参数,SOCKET_STREAM)一、前置条件: 导入socket包,一个局域网下两台电脑(或者本地创建一个win虚拟机)二、创建服务端 1、创建套接字 2、绑定本地信息 3、使用listen将默认的套接字由主动变为被动 4、等待客户端的链接(accept),并创建套接字为链接的客户端服务 5、接收客户端的数据 6、向客户...

2021-11-21 16:06:13 3179

原创 python使用socket在同一局域网下不同电脑传输数据(udp)

一、前置 条件: 导入socket包,一个局域网下两台电脑(或者本地创建一个win虚拟机)二、发送数据 1、创建套件字 2、发送数据 3、关闭套件字三、接收数据 1、创建套件字 2、绑定本地信息(ip和端口port) 3、接收数据 4、关闭套件字

2021-11-17 21:28:18 3505

原创 函数的不定长可变参数

1、不定长参数 *args接收不定长的参数,并返回元组格式ls=lambda *args:argsprint(ls(2,9,1))执行结果:2、不定长关键字参数 **kwargs接收不定长关键字参数,并返回字典格式la=lambda **kwargs:kwargsprint(la(name='hh',age='kk'))执行结果:...

2021-11-16 20:24:29 42

原创 python使用xlwt、xlrt、xlutils读写已存在的xls格式的excel方法

1、使用的三方库 xlwt、xlrt、xlutils2、使用xlrd打开原有的表格open_workbook第一个参数为文件路径,第二个参数的作用是保留文件原格式workbook=xlrd.open_workbook('user.xls',formatting_info=True)3、使用xlutils的copy方法使用打开的excel文档创建一个副本所有写入的操作都在副本中完成,直到执行save(),将副本中更新的内容写入原表格wbook=xlutils.c...

2021-11-12 09:51:41 3547 2

原创 python使用pandas和xlwt写、读xls格式的excel

1、使用的三方库: pandas 、xlwt2、获得数据,本次由人工输入 + '\t' 的目的:防止输入数字过长,写表时,写成科学计数法# 经办人jbr = input('请输入经办人姓名:')# 经办人身份证号jbrsfzh = input('请输入经办人身份证号:'+'\t')# 经办人电话jbrdh = int(input('请输入经办人电话号码:'))3、创建一个workbook 设置编码workbook=xlwt.Workbook(e...

2021-11-01 15:44:28 783 2

原创 python对比不同数据库内相同数据的对比(数据库迁移对比)

错误思路:1、在数据库1 中查询出所有符合条件的值2、循环取单个值,使用单个值去查询数据库2的单个值,进行对比错误原因: 1、每对比一项,就需要查询一次数据库,速度非常慢改进思路: 1、在两个数据库内询出所有符合条件的值 2、将两个值写入两个字典,并以 id (主键或者索引)作为两个字典的key 3、进行对比,循环取字典1的值,并将字典1的key (原数据库中的id)作为字典2的key去取...

2021-10-27 13:41:34 1592

原创 python查询数据库数据并将数据写入csv文件,并读取

1、连接数据库import mysql.connector#连接测试数据库mydb = mysql.connector.connect( host="10.100.0.0", user="root", passwd="root", database="rongpia")#获取游标mycursor=mydb.cursor()2、执行sql语句sql = "select status,red_status,order_id from cd_order

2021-10-25 14:37:55 3377

原创 es查询,json格式查询,复杂查询,学习笔记

size作为一级筛选条件单独使用表示,表示只返回聚合结果,不返回具体数据。{ "size":0, "query": { "match": { "uid":"469" } }}运行结果:{ "took": 0, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed"

2021-09-28 17:56:44 1268

原创 python-pytest-allure,生成测试报告并查看

默认环境:python3.9及以上,pycharm编译器一、安装配置环境1、安装pytest命令行输入pip install pytest2、安装JDK,因为allure依赖JDKjdk地址:Java Downloads | Oracle下载安装,并完成安装,配置环境,参考:JDK的下载、安装和环境配置教程(2021年,win10)_Marvin_996_ICU的博客-CSDN博客_jdk3、安装allure地址:Central Repository: io/qamet.

2021-09-18 15:14:32 1308

原创 es查询,json格式查询,基础查询

备注:1、query及sort等条件为json格式的一级条件1、单条件查询query 中放筛选类型,match为单条件查询,match内部放筛选条件{ "query": { "match": { "seller.tax_code": "92510100MA6C5AH52D" } }}2、查询结果排序sort代表排序,与query同一级别,sort内部放排序条件和排序方式(desc 降序,asc 升序){ "query": { "match": {

2021-09-08 21:42:23 4911

原创 python_random,生成指定长度的随机字符串

生成随机的范围import randomimport stringprint(string.digits)print(string.ascii_letters)打印结果string.digits=0123456789string.ascii_letters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ开始获取随机字符并限定长度def random_str(length=16): b = []

2021-08-18 15:15:34 869

原创 python_rsa分段加密详细步骤(Plaintext is too long)

作为一个rsa菜鸟,记录下我学习过程中碰到的问题from Crypto import Randomfrom Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_v1_5 as PKCS1_cipherimport base64with open('D:/gaodengtest/public_key/rpr_test_publickey.txt') as f: #拼接公钥的前后缀 key = '-----BEGI

2021-08-17 15:26:50 1638 4

空空如也

空空如也

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

TA关注的人

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