- 博客(83)
- 收藏
- 关注

原创 pytest结合allure
conftest.py与@allure.step结合,显示单独的“前置/后置”树,用于配置初始化和销毁。直接在测试方法或函数上添加 @allure.step 装饰器,并可自定义步骤名称,支持使用{}占位符。2、@allure.description_html添加html格式的描述。1、@allure.description提供描述字符串。,并在 Allure 报告中展示步骤层级。1、运行测试并生成 allure 数据。3、仅从测试方法的文档字符串获取描述。为测试用例添加详细描述。
2025-03-06 16:23:37
552

原创 cpu、mem监控
psutil是一个跨平台的Python库,用于获取系统使用情况的信息,包括CPU、内存、磁盘和进程等。主要用途是进行系统监控、分析和限制流程资源以及管理正在运行的流程。开源框架,支持用python实现前端页面。
2025-02-24 20:05:02
375

原创 DeepSeek初体验
DeepSeek /chat/completions API 是一个“无状态” API,即服务端不记录用户请求的上下文,用户在每次请求时,
2025-02-11 22:07:32
606

原创 pytest-编写插件
pytest_runtest_makereport(item: Item, call: CallInfo[None]) 被称为为_pytest.reports.TestReport测试项目的每个设置,调用和拆卸运行测试阶段创建一个。pytest_runtest_logstart(nodeid: str, location: Tuple[str, Optional[int], str]) 在运行单个项目的运行测试协议开始时调用。运行测试相关的钩子,接收一个pytest.Item对象。
2023-05-21 16:31:52
1101

原创 Python进阶
python列表是动态的,长度可变,可以随意的增加、删减或改变元素。列表的存储空间略大于元组,性能略逊于元组。元组是静态的,长度大小固定,不可以对元素进行增加、删减或者改变操作。元组相对于列表更加轻量级,性能稍优。元组是静态的,长度大小固定,不可以对元素进行增加、删减或者改变操作。元组相对于列表更加轻量级,性能稍优。l = []a = l.__sizeof__() #空列表的存储空间为40字节l.append(1)b = l.__sizeof__() # 加入了元素1之后,列表为其分配了可
2022-03-01 21:00:05
1164

原创 Mysql&Redis
数据库读写分离如何保证一致性?innodb底层(不是索引结构哈)LRU和LFU类加锁和实例对象加锁区别数据库的隔离级别有哪些
2022-02-17 22:37:54
3097

原创 leetcode-二叉树【4,6,7need again】
二叉树的存储方式:二叉树可以链式存储,也可以顺序存储。数组存储二叉树:如果父节点的数组下表是i,那么它的左孩子就是i * 2 + 1,右孩子就是 i * 2 + 2。一般用链式存储二叉树:二叉树的遍历:深度优先遍历:前序遍历(递归法,迭代法)中序遍历(递归法,迭代法)后序遍历(递归法,迭代法)广度优先遍历:层次遍历(迭代法)前中后序遍历的逻辑其实都是可以借助栈使用非递归的方式来实现的。而广度优先遍历的实现一般使用队列来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结
2021-12-04 19:58:17
112

原创 leetcode-链表【4need again】
leetcode-链表1、移除链表元素2、有序数组的平方1、移除链表元素203 移除链表元素# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def removeElements(self, head: ListN
2021-11-09 12:38:16
448

原创 leetcode-数组【三刷3,6,7need again】
leetcode-数组1、二分法2、有序数组的平方2、长度最小的子数组1、二分法我们定义 target 是在一个在左闭右闭的区间里,也就是[left, right] 所以有如下两点:while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=;if (nums[middle] > target) right 要赋值为 middle -1,因为当前这个nums[middle]一定不是target,那么接下来要查找的左区
2021-11-07 20:52:28
49

原创 leetcode-字符串【6,7KMP】
leetcode-字符串1、字符串反转2、字符串反转II(不是自己写出来的)3、替换空格4、反转字符串里的单词5、左旋转字符串6、重复的子字符串1、字符串反转344 字符串反转方法一:语言特性 …… s[:] = s[::-1] return s 方法二:双指针法class Solution: def reverseString(self, s: List[str]) -> None: #双指针法 n = len(s) l
2021-11-07 18:42:18
120

原创 leetcode-哈希表【三刷done】
最长公共前缀 :二分法查找最长公共前缀的长度不会超过字符串数组中的最短字符串的长度。用 minLength 表示字符串数组中的最短字符串的长度,则可以在 [0,minLength] 的范围内通过二分查找得到最长公共前缀的长度。每次取查找范围的中间值 mid,判断每个字符串的长度为mid 的前缀是否相同,如果相同则最长公共前缀的长度一定大于或等于 mid,如果不相同则最长公共前缀的长度一定小于 mid,通过上述方式将查找范围缩小一半,直到得到最长公共前缀的长度。class Solution: de
2021-05-23 19:52:02
112

原创 leetcode-双指针法【三刷done】
删除链表的倒数第N个节点:(双指针)1 、初始时first 和second 均指向头节点。我们首先使用first 对链表进行遍历,遍历的次数为 n。此时,first 和second 之间间隔了 n-1 个节点,即first 比second 超前了 n 个节点。在这之后,我们同时使用first 和second 对链表进行遍历。当first 遍历到链表的末尾(即first 为空指针)时,second 恰好指向倒数第 n个节点。2、在对链表进行操作时,一种常用的技巧是添加一个哑节点(dummy node),
2021-05-20 14:37:16
344

原创 数据结构&计算机基础
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的 KaTeX数学公式 语法;增加了支持甘特图的mermaid语法1 功能;增加了 多屏幕编å辑 Markdown文章功能;增加了 焦点写作模式、预
2020-09-24 00:34:54
929
原创 antd仿postman(10)
tag标签页一、demo代码二、完整代码三、效果四、遗留问题一、demo代码body tab页下,选择不同的radio展示不同的页面:<a-radio-group defaultValue="none" :select="body_type" name="radioGroup" @change="onChange" style="width: 100%" > <a-radio value="none">none</a-radio> <a-radio v
2022-05-05 19:47:37
937
1
原创 antd左树右表联动(9)
tree与table联动一、demo代码二、case页面完整代码三、效果一、demo代码二、case页面完整代码<template> <div> <a-card class="container"> <div class="tree-container"> <div class="left"> <div class="left-input"> &
2022-05-04 00:04:25
1890
1
原创 antd使用g2plot统计图表(7)
统计图表一、基本步骤二、使用三、完整代码三、效果演示G2Plot 是一套简单、易用、并具备一定扩展能力和组合能力的统计图表库,基于图形语法理论搭建而成。特性📦 开箱即用、默认好用的高质量统计图表🎨 提炼自企业级产品的视觉语言和设计规范📊 响应式图表:致力于解决图表在任何数据和显示尺寸下的基本可读性问题🔳 图层化设计方法:在 G2Plot 体系下,图表不仅仅只是各不相关的实例,图层概念的引入提供了多图表组合叠联动,共同讲述一个数据故事的可能性https://antv.vision/zhhtt
2022-04-29 16:52:13
3068
5
原创 antd-table嵌套任务页面(六)
<template> <div> <a-card :bordered="false"> <div style="display: flex; flex-wrap: wrap"> <head-info title="我的待办" content="8个任务" :bordered="true"/> <head-info title="本周任务平均处理时间" content="32分钟" :bo
2022-04-23 21:19:53
1876
原创 antd-tree增删改拖拽操作(五)
一、src/pages/postman/CI.vue文件<template> <div > <a-row :gutter="1"> <a-col :span="6"> <a-card style="width: 100%"> <a-input-search v-model="searchValue" style="margin-bottom: 4px" placeholder="服
2022-04-23 14:00:02
2895
原创 vue-antd-admin测试平台开发(一)
平台开发app.config.from_objet这个方法用来加载配置文件from config import Configapp.config.from_object(Config)# 基础配置类import osclass Config(object): ROOT = os.path.dirname(os.path.abspath(__file__)) LOG_NAME = os.path.join(ROOT, 'logs', 'app.log') # Flask
2022-03-19 18:59:19
718
1
原创 剑指offer(4~)
剑指offer树1、二叉树的深度(done)2、判断是不是平衡二叉树(done)3、对称二叉树(done)2、按之字形顺序打印二叉树(done)3、从上到下打印二叉树(done)4、 从上到下打印二叉树 II(done)5、二叉树的镜像(done)6、树的子结构(again)7、路径总和(again)8、路径总和ii(again)9、路径总和iii(again)9、二叉树中的最近公共祖先10、二叉搜索树的最近公共祖先11、二叉搜索树的后序遍历序列12、二叉搜索树的第k大节点栈1、栈的压入、弹出序列(……)2
2022-01-30 14:43:50
476
原创 20211016leetcode【3,79,17need again】
leetcode 刷题记录一级目录二级目录1、两数之和-哈希表一级目录二级目录1、两数之和-哈希表def twoSum(nums, target): s = dict() for i, j in enumerate(nums): #i下表,j值 if target - j in s: #不要使用s.values() return [s[traget-j], i] else: s[j] = i
2021-10-16 19:48:36
708
原创 接口测试Seldom
接口测试难点:测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化。接口依赖问题:B 接口依赖 A 的返回值,C 接口依赖 B 接口的返回值。加密问题:不同的接口加密规则不一样。有些用到时间戳、md5、base64、AES,如何提供种能力。断言问题:有些接口返回的结构体很复杂,如何灵活的做到断言。seldom 适合个人接口自动化项目,它有以下优势:可以写更少的代码自动生成 HTML/XML 测试报告支持参数化,减少重复的代码支持生成随机数据支持 har 文件转
2021-07-19 23:30:24
482
原创 python高并发-Lock/RLock
1)Capability作用Desired Capabilities是一组键值对,用于通知Appium Server建立所需的Session信息。2)Session作用Appium的Client和Server之间进行通信必须在一个Session的上下文中进行。Client发起通信时首先会发送一个“Desired Capabilities”的JSON对象给Server,Server收到该数据后...
2021-06-20 12:16:19
999
1
原创 python高并发-Condition
wait和release的区别:release和wait都有释放锁的作用,不同在于wait后,该子线程就在那里挂起等待,要继续执行,就需要接收到notify或者notifyAll来唤醒线程,而release该线程还能继续执行。wait会释放锁但是会挂起线程,不会继续向下运行。而release释放锁后有可能该线程继续向下运行。acquire([timeout])/release(): 调用关联的锁的相应方法。wait([timeout]): 调用这个方法将使线程进入Condition的等待池等待通知
2021-06-19 23:46:26
197
原创 python高并发-semaphore
semaphore信号量可以通过内置计数器来控制同时运行线程的数量每当调用acquire()时,内置计数器-1,直到为0的时候阻塞每当调用release()时,内置计数器+1,并让某个线程的acquire()从阻塞变为不阻塞Semaphore: 在调用release()函数时,不会检查,增加的计数是否超过上限(没有上限,会一直上升)BoundedSemaphore: 在调用release()函数时,会检查,增加的计数是否超过上限,这样就保证了使用的计数Thread :线程类,这是用的最多的一个
2021-06-17 13:35:35
600
原创 python高并发-线程池(ThreadPoolExecutor)
线程池:系统频繁的启动新线程,线程执行完被销毁,如果线程不能被重复使用,这必然会使得系统的性能下降,线程池的意义就在于减少线程创建及消毁过程中损失的系统资源。EXecutor类包含两个子类:ThreadPoolExecutor(max_workers=None, thread_name_prefix=’’,initializer=None, initargs=())用于创建线程池max_workers: 线程池中线程的个数;thread_name_prefix: 线程池中启动线程的名字;init
2021-06-15 00:03:32
3352
原创 Redis指令
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即maste
2021-06-01 21:27:50
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人