自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 selenium底层原理详解

目录1、selenium版本的演变1.1、Selenium 1.x(Selenium RC时代)1.2、Selenium 2.x(WebDriver整合时代)1.3、Selenium 3.x +2、selenium原理说明3、源码说明3.1、启动webdriver服务建立连接3.2、发送操作核心原理:核心原理:核心原理:说明:这里说的原理都是整合了WebDriver之后的selenium版本。思考:selenium是如何驱动浏览器做各种操作的呢?把上面的过程在提炼一下,流程如下:说明:我们从源码的角度看看,

2024-08-18 12:16:02 1241

原创 解决selenium 常见版本不兼容问题

【测试环境】

2024-08-17 23:47:39 1034

原创 Flask 线上高并发部署方案实现

在Flask的较早版本中,默认并不支持多线程模式。然而,从Flask 0.9版本开始,引入了多线程模式的支持,并且在后续版本中逐渐成为默认设置。到了Flask 1.0版本,多线程模式已经被明确设定为默认行为。

2024-08-16 17:27:28 1354

原创 Python 上下文管理器

contextlib 是 Python 的一个标准库模块,它提供了用于创建上下文管理器的装饰器和上下文管理器类。上下文管理器主要用于 with 语句,帮助自动管理资源,如文件操作、线程锁的获取与释放等,使得代码更加简洁、安全。上下文管理器协议:是指要实现对象的 __enter__() 和 __exit__() 方法。contextlib 模块中最常用的工具是。

2024-08-16 12:38:47 799

原创 Python 鸭子类型、猴子补丁、白鹅类型

在 Python 中,鸭子类型意味着只要对象实现了所需的方法和属性,它就可以被用作所需的类型,

2024-08-14 15:57:37 966

原创 Python 类的使用

类的定义使用关键字class,后跟类名和类体。类体中可以包含属性(通常作为初始化方法__init__的参数)和方法(定义为类中的函数)。在这个例子中,MyClassname和agegreet。__init__是一个特殊的方法,称为类的构造函数或初始化方法,用于在创建对象时初始化属性。

2024-08-12 15:42:30 574

原创 Python 常用内置函数

与eval()不同,exec()可以执行更复杂的代码块,包括多行代码、声明和控制流语句,但它不返回任何值(即返回值为None)。它的主要作用是将一个字符串列表(或数组)中的所有元素连接成一个单独的字符串,元素之间可以插入一个指定的分隔符。是两个功能强大的内置函数,它们都能够执行字符串形式的Python代码,但它们在用法和返回值方面存在显著差异。是一个字符串方法,用于将序列(如列表)中的元素以指定的字符(或字符串)连接生成一个新的字符串。eval()函数用于执行一个字符串表达式,并返回表达式的值。

2024-08-09 18:52:27 1068

原创 解决 kafka.errors.KafkaTimeoutError 问题

1、首先登录到kafka服务器地址,使用kafka-console-producer.sh和kafka-console-consumer.sh发送和消费消息查看是否正常,往topic='lc.kafka.test'发送消息和消费消息都没有问题,说明kafka服务端是正常的。:通过使用主机名,可以更轻松地实现负载均衡和故障转移。例如,使用负载均衡器的主机名作为 Kafka Broker 的连接点,当其中一个 Broker 失效时,负载均衡器可以自动路由流量到可用的 Broker 上。再次运行,终于成功了!

2024-07-31 17:40:01 698

原创 Redis 基本数据类型和常用命令操作

说明:Redis是一个key-value的数据库,key一般是String类型,value的类型多种多样,分为基本数据类型和特殊数据类型基本数据类型:String(字符串)Hash(哈希表)List(列表)Set(集合)SortSet(有序集合)特殊数据类型:BitMap(位图)HyperLog(基数估计)

2024-07-29 11:30:00 983

原创 Redis Linux部署和容器部署

https://pan.baidu.com/s/1GdxpCcxjqqrN2YwcDqRksw 提取码: fpr5。因为该目录已经默认配置到环境变量,所以可以在任意目录下运行这些命令。1、可以通过配置来实现开机自启。如果没有出错,应该就安装成功了;# 进入redis安装目录。1、如果要让Redis以。# 进入如redis容器。# 启动redis容器。

2024-07-26 18:32:56 928

原创 flask-login会话保持实现

当用户通过表单提交用户名和密码进行登录时,后端会进行身份验证。

2024-07-12 16:04:06 465

原创 flask 之JWT认证实现

JWT(JSON Web Token)是一种用于身份验证和授权的开放标准。它由三部分组成,分别是头部、负载和签名。头部(Header)是一个 JSON 对象,描述了使用的算法和类型。它通常包含两个字段:算法(alg)和类型(typ)。负载(Payload)也是一个 JSON 对象,用于存储用户的相关信息。它可以包含一些预定义的字段,如过期时间(exp)、发布时间(iat)等,也可以包含一些自定义字段。签名(Signature)使用指定的算法对头部和负载进行加密,生成一段字符串。

2024-06-03 17:00:18 1662 2

原创 flask-slqalchemy使用详解

是一款Python编程语言下的开源软件,提供了SQL工具包及对象关系映射(ORM)工具。允许开发人员通过Python类与对象来操作数据库,从而避免了直接编写SQL语句的复杂性。支持多种数据库系统,如SQLite、MySQL、PostgreSQL等。是sqlalchemy的一个扩展或封装,专门用于Flask web框架。简化了在Flask应用中与数据库交互的过程,例如配置、初始化、使用ORM等。使得在Flask中集成数据库变得更为方便和直观。

2024-05-31 18:17:11 1585

原创 Python 之SQLAlchemy使用详细说明

ORM(Object-Relational Mapping)模型,即对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。在面向对象的编程语言中,如Java、Python等,数据通常被组织成复杂的对象关系。简单来说就是ORM模型把面向对象编程与操作数据库之间建立了映射。设置开发者操作数据库无需维护和编写SQL语句,而是基于面对对象的方式操作数据库。数据库中的表>编程语言中的类,表中的字段>类中的属性,表之间的关系>类之间的关系。

2024-05-31 14:08:21 1738

原创 MYSQL 视图/存储过程/触发器详解

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,视图的主要目的是简化复杂的SQL查询,提高数据访问的安全性,以及隐藏数据的复杂性。。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以在创建视图的时候,主要的工作就在于创建这条SQL查询语句上。存储过程是事先经过编译并存储在数据库中。

2024-05-17 14:37:10 1569

原创 堆排序 之实现数据流中的中位数

【代码】堆排序 之实现数据流中的中位数。

2024-05-11 18:17:29 621

原创 堆排序 之实现最小的K个数

建堆(从最后一个非叶子节点到根节点建堆)i = i - 1# 堆化(从上到下)maxPos = i# 和左子节点比较# 和右子节点比较break# 交换节点i = maxPos# 特殊情况处理# 先前k个数据建堆# 后面的节点依次和堆顶元素比较# 如果比堆顶元素小,将该元素加入堆顶,然后从堆顶开始堆化# 该元素和堆顶元素交换# 从堆顶元素开始从上往下堆化。

2024-05-11 17:40:31 552

原创 Git 分支命令操作详解

2.2、查看分支hot-fix的内容与主干分支master内容不一致。2.3、修改分支hot-fix的内容,然后提交到本地仓库。2.1、首先切到主干分支master,再进行分支合并。2.1、创建分支 hot-fix,并查看创建的分支。git checkout 分支名。git checkout 分支名。2.1、切换到分支hot-fix。把指定的分支合并到当前的分支上。git branch 分支名。git branch 分支名。git merge 分支名。git merge 分支名。

2024-05-11 14:08:11 1305

原创 Git 常用命令

2.2、切换到 9ba7a99 版本,然后查看当前的版本号,再查看文件的内容是否为第一次提交的内容。git config --global user.name 用户名。git config --global user.email 邮箱。git config --global user.name 用户名。git config --global user.email 邮箱。2.2、新增文件(test.txt),然后再次查看本地仓库状态。git reset --hard 版本号。2.1、首先查看历史版本。

2024-05-11 13:55:55 1250

原创 PyCharm 集成 Git

注意:修改文件一定要先提交到本地仓库,然后切换到master分支,最后把hot-fix分支合并到master分支,再把合并后的代码提交到本地仓库。原因:新增的忽略文件只对工作区生效,对在暂存区的文件、本地仓库、远程仓库的文件是无效的,所以最好在新建项目之初就新建忽略文件。把它们忽略掉能够屏蔽 IDE 工具之 间的差异。或者 点击右下角hot-fix分支->点击需要切换的分支->点击Checkout 进行分支切换。1、在 pycharm 窗口的右下角,将 hot-fix 分支合并到当前 master 分支。

2024-05-11 11:49:10 1765

原创 MYSQL 容器部署

use mydb01;change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;

2024-05-08 14:11:22 1761

原创 基于Python实现单例模式

单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。

2024-05-07 14:45:07 434 1

原创 Hbase 常用shell操作

通过shell的方式来维护和管理HBase。例如:执行建表语句、执行增删改查操作等等。

2024-05-06 23:47:34 2643 1

原创 Kafka 消费者应用解析

注:示例代码使用的语言是Python。

2024-04-26 19:53:31 1328 3

原创 Kafka 生产者应用解析

可以根据实际需要,自定义实现分区器。示例:自定义分区 发送过来的数据中如果包含 hello,就发往 0 号分区,不包含 hello,就发往 1 号分区。# 自定义分区 发送过来的数据中如果包含 hello,就发往 0 号分区,不包含 hello,就发往 1 号分区。""":function: 自定义分区:param topic: 写入数据所在的topic:param msg: 写入的数据:return:"""# 自定义分区器return 0else:return 1。

2024-04-26 17:26:21 1714 4

原创 Kafka集群安装

kafka的管理需要借助zookeeper完成,所以要先安装好zookeeper集群。

2024-04-25 15:08:26 1301 2

原创 MySQL Linux环境安装部署

validate_password.policy:密码复杂性要求级别,默认为 MEDIUM。GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION;CREATE USER '用户名'@'%' IDENTIFIED BY '密码';# 刷新MySQL的权限表以使更改生效。# 刷新权限表和使更改生效。# 使用mysql数据库。

2024-04-18 10:17:53 761

原创 LInux shell编程之基础语法

shell 是一个命令解释器,它接收应用程序/控制台命令。然后调用操作系统内核shell 是一个功能强大的编程(脚本)语言,易编写、易调试、灵活性强1、常用系统变量注意:系统变量都是大写,自定义变量大小写不做要求,一般是小写。2、常用操作(1)查看系统变量的值方式:$系统变量名如:查看系统变量HOME的值echo $HOME(2) 查看系统环境变量命令:env(3) 查看当前shell中所有的变量,包括临时变量、自定义变量命令:set定义变量:变量名=变量值;注意:=号前后不能有空格。

2024-04-17 16:22:28 892

原创 Linux三剑客之grep篇

作用:文本搜索工具,根据用户指定的模式(匹配条件),对目标文本或管道数据流逐行进行匹配检查,最后打印匹配的结果。使用grep 命令本身会开启新的进程,使用参数 -v 过滤掉grep进程。支持使用扩展的正则表达式元字符。具体行数根据参数后面的数字决定。静默模式,不输出任何信息。忽略匹配字符的大小写。只统计成功匹配的行数。

2024-04-17 13:59:52 449

原创 Linux三剑客之sed篇

命令:sed -e "s/This/It/g" -e "s/boy/cat/g" sed_test.txt 或 sed -e "s#This#It#g" -e "s/boy/cat/g" sed_test.txt。方式1使用管道输出:ifconfig ens33 | sed "2p" -n | sed "s/^.inet //g" | sed "s/ net.$//g"命令:sed -n "/hello/p" sed_test.txt。命令:sed - i "/book/d" sed_test.txt。

2024-04-16 23:10:40 653

原创 Linux三剑客之awk篇

方式一:使用-v 参数选项指定示例:定义变量name,并使用awk输出name的内容命令:awk -v name='Tom' '{print "My name is " name}' student_table方式二:直接内部定义示例:定义变量name,并使用awk输出name的内容。

2024-04-16 22:55:52 872

原创 Python 正则表达式使用详解

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用re模块re.match(正则表达式, 要匹配的字符串) 有返回值说明匹配成功;否则匹配失败。

2024-04-12 14:57:09 1422

原创 Python 序列化与反序列化

通过文件操作,可将字符串写入到一个本地文件,但是无法将一个对象,如字典,列表,元组直接写入到一个文件里,这是就需要将这个对象进行序列化,然后写入文件。把内存中的数据转换为字节序列,保存到文件。从文件的字节序列恢复到内存中。字符串与 byte 类型之间互相转换常用的 encode() 函数、与 decode() 函数,分别代表着编码与解码。在Python中有两个模块可以实现序列化和非序列化,分别是json 和 pickle,下面分别说明两者的使用和区别。

2024-04-11 15:24:39 1824

原创 Python装饰器的使用详解

在函数嵌套的前提下,内部函数使用外部函数的变量,并且外部函数返回内部函数我们把这个使用外部函数变量的内部函数称为闭包。

2024-02-29 19:20:29 2008 1

原创 appium实现自动化测试原理

bootstrap是Appium在初始化的时推送到Android手机上的一个UiAutomator测试脚本,该脚本的唯一一个测试方法的作用就是在手机端开启一个SocketServer(socket通信服务),实际上bootstrap是一个socket服务器,专门监听设备上4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理。

2024-02-19 12:26:56 1430

原创 Uiautomator2实现Android自动化测试详解

已选中的元素,通常用于复选框,参数为True,False。获得了焦点的元素,参数为True,False。当前选中的元素,参数为True,False。description符合指定正则的元素。可检查的元素,参数为True,False。可点击的元素,参数为True,False。可长按的元素,参数为True,False。可滚动的元素,参数为True,False。已激活的元素,参数为True,False。可聚焦的元素,参数为True,False。resourceId为符合指定正则的元素。

2024-02-19 12:20:57 2382

原创 使用wda框架实现IOS自动化测试详解

Facebook-wda库(wda是其简称)是一个基于WebDriverAgent的Python客户端库,用于实现iOS设备的自动化测试。WebDriverAgent:Facebook-wda库依赖于WebDriverAgent项目,这是一个由Facebook开源的iOS设备自动化测试框架。它是一个基于XCTest和XCUITest的服务,运行在iOS设备上,并提供了与设备进行通信的接口。WebDriver协议:Facebook-wda库使用WebDriver协议与WebDriverAgent进行通信。

2024-02-03 15:41:20 4709 3

原创 基于tidevice实现iOS app自动化使用详解

首先需要知道在iOS设备上是谁在执行发送过去的指令,它就是XCUITest,下面介绍它的由来和作用:XCTest和XCUITest是 iOS 开发中常用的两个测试框架,它们之间存在一定的区别和联系。XCTest:是苹果官方提供的测试框架,可以在 Objective-C 和 Swift 语言中使用。它提供了很多功能强大的测试工具,包括单元测试、性能测试、UI 测试等。使用 XCTest 可以帮助开发者快速编写和运行各种类型的测试用例,并得到详细的测试报告。

2024-02-01 12:15:24 3938

原创 httprunnerV4.X的基本使用详解

HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,继承request的全部特性,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。HttpRunner:所有的测试用例类必须继承于HttpRunnerConfig:当前测试用文件的全局配置,可以配置全局变量,base_url,导出变量Step:测试步骤,每一条测试用例对应一个StepRunRequest:每一条测试用例的执行封装。

2024-01-26 15:42:14 1876 3

原创 python虚拟环境使用详解

poetry config virtualenvs.create --local --unset 执行后当前项目配置中的virtualenvs.create的值被重置。2、安装最新包指定为开发依赖,会写到pyproject.toml中的[tool.poetry.dev-dependencies]1、安装poetry.lock(如果存在)/pyproject.toml文件中的全部依赖。2、新建的项目,还没有pyproject.toml文件和虚拟环境。pipenv uninstall 包名。

2023-12-21 12:00:00 6509

空空如也

空空如也

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

TA关注的人

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