- 博客(106)
- 资源 (4)
- 收藏
- 关注
原创 adb获取手机设备蓝牙&热点&wifi状态并操作的笔记
在Windows上查找字符串使用的是findstr,在linux上使用的是grep。adb获取手机设备蓝牙&热点&wifi状态并操作的笔记。
2023-04-04 23:42:29
3398
原创 pytest 怎么多线程,在执行case 的时候,开一个新线程执行另一个脚本
不过需要注意的是,由于 Python 中的全局解释锁(GIL)限制,multiprocessing 模块在某些情况下可能比 threading 模块更适合执行 CPU 密集型任务。在主进程中,首先创建一个子进程,并将要执行的函数 run_other_script 指定为子进程的目标。然后启动子进程,并在主进程中执行 pytest 测试用例。在执行测试用例的同时,可以使用 Python 的 threading 模块或 multiprocessing 模块开启一个新线程或子进程来执行另一个脚本。
2023-03-23 16:30:03
1010
原创 json的序列化和其他类型数据
jsonimport jsonimport decimalfrom datetime import date, datetimeclass CustomJsonEncoder(json.JSONEncoder): def default(self, field): if isinstance(field, date): return field.strftime('%Y-%m-%d') elif isinstance(field,
2022-05-11 10:50:01
505
原创 python操作momgo
import pymongoimport warningswarnings.filterwarnings("ignore") # 这个是避免mongo链接的时候爆的警告from sshtunnel import SSHTunnelForwarderdef connect_test(tabe_name,database_name): test_database_name = database_name test_table_name = tabe_name url_te
2022-02-25 19:23:32
1167
2
原创 数据库大纲
关系型数据库(Mysql和Oracle)表和表、表和字段、数据和数据存在着关系优点: 1.数据之间有关系,进行数据的增删改查的时候是非常方便的 2.关系型数据库是有事务操作的,保证数据的完整性和一致性。缺点: 1.因为数据和数据是有关系的,底层是运行了大量的算法,大量算法会降低系统的效率,会降低性能 2.面对海量数据的增删改查的时候会显的无能为力 3.海量数据对数据进行维护变得非常的无力常见应用: 适合处理一般量级的数据(银行转账和钱)非关系数据库的(redis和MangD
2022-02-25 13:42:03
149
原创 python线程池ThreadPoolExecutor,传单个参数和多个参数
这是线程池传单个参数的from concurrent.futures import ThreadPoolExecutor,as_completeddef test(a): print(a)qq = {"a":"1","b":"2","c":"3"}with ThreadPoolExecutor() as pool: for j ,k in qq.items(): res = pool.submit(test,j) kk = res.resul
2022-01-24 14:18:32
12473
1
原创 导出chrome插件,导入本地插件到chrome
首先就是在对应的 C:\Users\ThinkBook\AppData\Local\Google\Chrome\User Data\Default\Extensions目录下找到想要的插件就是根据插件的id确定的然后就是打包扩展程序然后,怎么导入回去呢?首先就是改文件属性,把crx文件修改我是改成了zip格式然后在一个文件夹里,解压他然后导入就行...
2022-01-13 18:52:31
887
原创 pdf转word
-- coding: utf-8 --from pdf2docx import Converterpdf_file = r’C:\Users\ThinkBook\Desktop\搬家事宜安排.pdf’docx_file = r’C:\Users\ThinkBook\Desktop\搬家事宜安排.docx’cv = Converter(pdf_file)cv.convert(docx_file, start=0, end=None)cv.close()...
2021-08-27 15:10:44
121
原创 mysql行转列(更新版)
推荐使用 if 的语句:if(想变成行的列名 = ‘列的值’,另一个列名) ‘给这个字段取别名’建表语句create table test (Date varchar(10), item char(10),saleqty int);insert test values('2010-01-01','AAA',8);insert test values('2010-01-02','AAA',4);insert test values('2010-01-03','AAA',5);insert tes
2021-04-22 16:19:53
130
转载 awk使用
awk用法文本处理的命令;便于截取内容;支持小数运算工作原理(与sed区分)sed一样,均是一行行的读取、处理; sed是一整行处理,awk是将一行拆分成字段进行处理完整语法awk 'BEGIN{commands}pattern{commands}END{commands}'file BEGIN 执行数据前的命令pattern 每行都会执行的命令END 执行数据后的命令例:以:为分隔符,查找passwd文件中以bash结尾,打出第一个字段和第七个字段[root@localhost 1-28
2021-02-04 15:45:56
257
原创 登录注册
from tkinter import Tkimport tkinter as tkmy_win = Tk()my_win.title('登录')weight = 300height= 300scr_wei,scr_hei = my_win.maxsize()dx = "%dx%d+%d+%d"%(weight,height,(scr_wei-weight)/2,(scr_hei-height)/2)my_win.geometry(dx)# 添加标签username= tk.Lab
2020-11-08 17:24:36
244
原创 第一个图形化界面(修改版)
from tkinter import Tk# 显示窗口my_win = Tk()# 标题my_win.title('ceshi')#设置大小,并居中width = 240height = 500scr_wid,scr_hei= my_win.maxsize() # 首先就是获取整个屏幕的大小print(scr_hei,scr_wid)dx = "%dx%d+%d+%d"%(width,height,(scr_wid-width)/2,(scr_hei-height)/2)my
2020-11-08 15:30:12
145
原创 第一个图形化界面
from tkinter import *from tkinter import messagebox # 这个是弹窗的包root = Tk()btn = Button(root)btn['text'] = '快点击' # 按钮名btn.pack()def son(e): messagebox.showinfo('点击点击双击') #这个弹窗的名字 print('双击关注') # 这个是后台的输出btn.bind("<Button-1>...
2020-11-08 10:51:08
306
原创 docker 安装 jenkins
docker pull jenkins/jenkins:ltsmkdir -p /mydata/jenkins_homechown -R 1000 /mydata/jenkins_home/docker run -d -i --name=jenkins_cxp -p 8081:8080 -v /mydata/jenkins_home:/var/jenkins_home jenkins/jenkins:lts方法一:dodocker logs jenkins_cxp方法2:然后就是安
2020-10-30 18:08:31
156
原创 笔记_docker_02
挂载docker run -it -v 主机目录:容器目录 要启动的容器名 /bin/shdocker run -it -v /home/ceshi:/home centos /bin/shdocker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysqlcxp mysql:5.7docker run -d -p 3310:3306 -v /home/
2020-10-30 15:57:15
97
原创 笔记_docker_01
镜像 就是一个文件容器 就是一个在启动的文件仓库 就是放很多的镜像的地方docker 一般的安装位子是在 var /lib 文件夹里docker是一个类似桌面端的应用是一个CS结构的docker 有着docker 镜像操作docker imagesdocker images -adocker images -q 只显示idREPOSITORY 镜像仓库源TAG 镜像变迁IMAGE ID 镜像IDCREATED 创建时间SIZE 大小docker sea
2020-10-30 10:12:10
116
转载 使用 Docker 构建 Yapi
使用 Docker 构建 Yapi1.创建 MongoDB 数据卷docker volume create mongo_data_yapi2.启动 MongoDBdocker run -d --name mongo-yapi -v mongo_data_yapi:/data/db mongo3.获取 Yapi 镜像,版本信息可在 阿里云镜像仓库 查看 :地址: https://dev.aliyun.com/detail.html?spm=5176.1972343.2.26.I97LV8&am
2020-10-29 10:17:24
392
原创 笔记_jmeter_性能测试介绍
专业术语:负载测试:压力一定,持续一定的时间,检查性能压力测试:超出预期压力时候的,性能情况并发测试:多个用户访问同一个应用,是否存在死锁或其他的问题响应时间:响应时间有99%,95%,90%,50%,平均响应时间,其中最重要的就是前3个,业务量:40万80%=32万时间段:2420%=4.8小时每小时的业务量:32万/4.8小时 = 6.67万/小时每秒的业务量:66700/3360 = 18.53笔/秒,翻过来就是 1/18.53=0.053秒/笔,既,一个用户0.053秒一笔每人每笔
2020-10-25 15:42:58
156
原创 笔记_jmeter_分布式
首先就是要准备多台电脑。一台是控制机(主),其他的是执行机(副)下图就是在***控制机***上的设置控制机要控制的电脑的ip和端口,端口一般就是1099记得关闭防火墙!执行机的配置其实一样的,只是执行机的配置文件里remote_hosts中的ip要填自己的ip,别写127.0.0.1!!!记得和控制机的一样,只是控制机的填写多个ip,执行机的只要写自己的就好然后执行机运行下图的文件就好了,等着控制机的控制,双击,运行jmeter_sever.bat 然后就是等接下就是控制机的活了,一
2020-10-25 11:59:32
95
原创 笔记_jmeter_请求头
参数格式有很多,但是在jmeter中是不会自动识别我们填写的格式的,这时候就要我们自己填写,在postman中在postman中如果数据格式是json的在row中选择json就可以了,要是是其他的格式,直接在headers中添加键值对,也就是请求头。在jmeter中添加请求头就可以了,格式和postman差不多的jmeter中参数数据格式其实对应的是 x-www-form-urlencode 和 form-data 格式的,要是参数格式是这些,就不用去添加请求头.
2020-10-19 14:38:28
5961
原创 笔记_jmeter配置语言,以及语言乱码
jmeter在使用界面的模式的时候,其实是不太支持高并发的,因为gui模式的时候就已经耗了挺多性能了。在高并发的时候,最好就是使用命令行,gui就是在调试的时候用的中文乱码问题时候修改的配置文件:\bin\jmeter.properties 中的sampleresult.default.encoding启动时候的默认语言:...
2020-10-19 14:20:28
95
原创 笔记_jmeter_文件夹介绍
bin文件夹下:examples:含有csv样例jmeter.bat 启动文件jmeter.log 日志文件 jmeter.properties 系统配置文件jmeter-sever.bat 是window下分布式测试要用到的服务器配置docs文件夹:api文件夹里的index.html是jmeter开源的而接口的位置extras文件夹:(这个用的少)扩展插件目录lib文件所有的插件Licenses文件:jmeter证书目录printable_docs用户手册位置:prin.
2020-10-19 11:29:44
175
原创 driver接管当前浏览器
首先就是先cmd中敲下面的命令chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"#--remote-debugging-port,我们可以随意指定打开的端口#-user-data-dir,这个是指定创建Chrome配置文件的目录,为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件#一定将chrome.exe的路径添加到环境变量中然后就会打开一个浏览器接下
2020-10-16 20:22:28
769
原创 迭代器对象
迭代器对象就是实现了–next–方法和 --iter–方法的,缺一不可迭代器对象一点是可迭代对象反之就不一定了迭代器实现了工厂模式。实现了懒加载,节约了内存空间。我的理解就是,只给一个开头,后面的随用随取。不像可迭代对象。给了开头和结尾from itertools import counta = count(start=10)print(next(a))print(next(a))print(next(a))print(next(a))print(next(a))print(next(
2020-08-26 15:40:24
446
原创 可迭代对象
可迭代对象就是实现了 __iter__或者 __getitem__中的任意一个,可以通过下标索引的,可以通过 for 循环遍历的如何判断呢方法有两个,一个是这个用的少from collections import Iterableprint(isinstance([],Iterable))class test: passprint(isinstance(test(),Iterable))这个用的多一点上面说了,实现了__iter__或者 __getitem__就是
2020-08-26 14:36:00
217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人