自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pytest-夹具函数

1.用于定制测试流程,在各个节点加入需要执行的固定流程官方文档地址:How to use fixtures — pytest documentation2.具体实现:用@pytest.fixture标记夹具函数,在具体用例函数的传参中增加具体夹具函数的函数名@pytest.fixture()def A():print('此处是夹具函数')def test_parameterize_with_id1_1(self,A):self.client.simple_step()效果

2022-01-17 18:46:05 1442

原创 allure报告定制

1.在报告中显示断言函数名,只需要在断言函数加上注解@allure.step即可,后续使用断言函数就能在报告中展示使用了哪些断言函数client.py@allure.stepdef simple_step(self):passtest_demo.pyfrom pytest_core.core.client import Clientclass Test_parameterize():client=Client('url','method')def test_paramet

2022-01-17 18:43:46 971

原创 allure、钉钉hook

一、allure1.report目录下创建json文件夹:存放数据中间文件创建html文件夹:存放生成的html报告2.pytest运行命令中增加生成数据中间文件:pytest.main(['./cases','-s','--alluredir=./report/json'])对应生成的json数据文件:pytest运行命令行中添加'--clean-alluredir',使只保存最后一次生成的中间数据(之前已经生成的数据清空)pytest.main(['./cases','-

2022-01-17 18:42:33 1352

原创 pytest

一、目录结构cases---测试用例core-----核心源码util------工具包report-----存放测试报告(按照时间戳排序)data----数据驱动文件run.py 项目运行文件record---录制接口结果---时间戳二.测试用例组织方式一个接口一个.py文件,一个方法表示一个用例三、如何被pytest识别到接口测试用例文件以test_开头,方法名称以test_开头,类需要以Test开头(以Test开头的类不能有init方法)四.assert

2022-01-17 18:39:50 597

原创 接口安全(一)

一、请求的截获与篡改1.隐藏域攻击——查看元素中"display":none的即为隐藏域(用户不可见,但会随表单一起提交)可以直接在elements中修改,删去 "display":none 页面上就能看见之前隐藏的元素了(但是一刷新就会又全部显示出来)例如下单页面将“会员优惠”做成隐藏域,用户自己打开并输入金额后,在后端没有校验的情况下就较少了支付的金额。避免的方式:1.在可以动态生成元素的情况下,不使用隐藏域提前创建元素;2.在提交表单时,使用js对隐藏域的值做判断 3.对于关键参数

2021-11-14 16:54:39 1054

原创 接口安全(二)

三、竞争条件——利用线程并发漏洞1.超过限制下单2.同时申请多笔退款避免方式:数据库操作,要进行锁表。防止利用时间差并发秒杀接口代码:数据库加锁:一个用户操作数据库的时候其他用户不能查询数据库;...

2021-11-14 16:53:03 797

原创 接口安全(一)

一、请求的截获与篡改1.隐藏域攻击——查看元素中"display":none的即为隐藏域(用户不可见,但会随表单一起提交)可以直接在elements中修改,删去 "display":none 页面上就能看见之前隐藏的元素了(但是一刷新就会又全部显示出来)例如下单页面将“会员优惠”做成隐藏域,用户自己打开并输入金额后,在后端没有校验的情况下就较少了支付的金额。避免的方式:1.在可以动态生成元素的情况下,不使用隐藏域提前创建元素;2.在提交表单时,使用js对隐藏域的值做判断 3.对于关键参数

2021-11-14 16:50:51 3356

原创 九.python 列表实现循环队列

一、循环队列比n(长度)要少存放一个数据当队满时,(tail+1)%n=headCircleQueue.pyclass CircleQueue: def __init__(self,n): self.n=n self.numList=[] self.head=0 self.tail=0 def push(self,num): if (self.tail+1)%self.n=.

2021-09-14 14:26:55 315

原创 八.python链表实现队列

node.pyclass Node(object): """队列链表的结点""" def __init__(self, item): # item存放数据元素 self.item = item # next是下一个节点的标识 self.next = NonequeueTest1.pyfrom queueTest.node import Nodeclass queuqTest: def __init

2021-09-14 14:24:23 231

原创 七.python列表实现栈

栈是一种操作受限的数据结构,只支持入栈和出栈操作。后进先出是它最大的特点。栈既可以通过数组实现,也可以通过链表来实现。不管基于数组还是链表,入栈、出栈的时间复杂度都为O(1)。# 用列表实现栈class stackTest: def __init__(self,len): self.len=len self.dataList=[] def push(self,num): if len(self.dataList)<sel

2021-09-14 14:22:29 233

原创 六.循环链表

node.pyclass Node(object): """链表的结点""" def __init__(self, item): # item存放数据元素 self.item = item # next是下一个节点的标识 self.next = NoneSingleCycleLinkList.pyfrom SingleCycleLinkList.node import Nodeclass SingleCy.

2021-09-14 14:19:59 36

原创 五.python实现双向链表

Node.py文件class Node(object): """双向链表的结点""" def __init__(self, item): # item存放数据元素 self.item = item # next 指向下一个节点的标识 self.next = None # prev 指向上一结点 self.prev = NoneBilateralLinkList.py文件from .

2021-09-14 14:18:10 93

原创 四、python实现单链表

node.py文件class Node(object): """单链表的结点""" def __init__(self, item): # item存放数据元素 self.item = item # next是下一个节点的标识 self.next = NoneLinkedList.py文件from linked_list.node import Nodeclass SingleLinkList(object).

2021-09-14 14:16:27 58

原创 三、链表——数据结构

一.单链表、循环链表、双向链表(更常用,用空间换时间的设计思想)双向链表的优势:插入、删除操作需要知道前一个节点,便于指向删除、插入后的新元素。1.对于删除某个固定指向的值:单链表删除操作需要O(n) 的时间复杂度,而双向链表只需要在 O(1) 的时间复杂度内就搞定了2.对于删除某个值等于固定值的节点,查找都需要O(n) ,删除需要O(1) ,所以总体都是O(n)PS:对于一个有序链表,双向链表的按值查询的效率也要比单链表高一些二、数组VS链表1.数组:在实现上使用的

2021-09-14 14:12:20 114

原创 二、数组数据结构

1.数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。2.当计算机需要随机访问数组中的某个元素时,它会首先通过下面的寻址公式,计算出该元素存储的内存地址:a[i]_address = base_address + i * data_type_size3.最大的特点就是支持随机访问,但插入、删除操作也因此变得比较低效,平均情况时间复杂度为 O(n)...

2021-09-14 14:08:06 47

原创 一、复杂度分析

1.所有代码的执行时间 T(n) 与每行代码的执行次数 n成正比例一、例二、第一个例子中的T(n) = O(2n+2),第二个例子中的 T(n) = O(2n^2 +2n+3)。这就是大 O 时间复杂度表示法,数量很大时,只记录影响最大的量级,即T(n) = O(n); T(n) = O(n^2 )2.总的时间复杂度就等于量级最大的那段代码的时间复杂度一长段代码中有一段为n,一段为n^2,则总体为n^23.嵌套循环则时间复杂度为T1(n) * T2(n)4.常见的..

2021-09-14 14:05:16 46

原创 02.Jmeter基础使用一线程组

一、进程、线程、协程进程:有几个CPU就能同时并行几个进程(一个cpu可以串行调度多个进程,切换的时间很快(CPU时间片),用户感知好像是并行的一样)线程:是进程的下分(比如分配了0.01s给优酷进程,但是优酷需要同时有声音、视频等等,忙不过来,这时就需要有线程来处理)——是并行的、需要cpu调度(所以)协程:线程切分时间片,快速切换,串行,用户感知好像是并行的Jmeter是一个进程,每一个虚拟用户就是一个线程;二、Jmeter基本元件1.线程组在取样器错误后要执行的操作

2021-05-27 09:46:10 147

原创 01、性能测试场景测试

1、什么是性能测试用工具模拟实际并发场景,发现系统问题,使系统上线后在接近的用户场景下不死。工程解释:性能测试是针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。2、性能指标Jmeter中Throughput=TPS同时还要关注错误率、资源利用率;TPS只统计断言成功的事务数,如果断言没成功是不会被计入TPS中的。3.TPS的事务可以有不同

2021-05-27 09:29:37 440

原创 linux 三剑客 awk

1.awk默认将文件每一行以空格或tab键分隔,$1表示分隔后的第一个字段,$2表示第二个,依次类推,下文表示在$1和$2中加入tab键分隔2.如果需要以其他字符做分隔(如逗号),用 -F, 例(注F添加附近的空格不可省略)3.涉及到多次分隔的可以先把第一次分隔后的结果存放到另一个文件,如ant2.log,后面再接着操作ant2.log即可在操作后加上: >ant2.log 例具体可参考鸟哥私房菜。...

2021-05-27 09:26:25 118

原创 06、linux常用命令3——sed

1. sed 对文本的行进行操作sed是一种流编辑器,它是文本处理中非常好的工具处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出或添加选项 -i参数文件:指定待处理的文本文件列表。格式:sed [选项] '[定址符]处理动作' 文件 [input-file]选项-i: 直接修改文件

2021-05-27 09:23:43 190

原创 05、linux常用命令2

1.netstat 监控网络使用信息选项:-a或--all 显示所有连线中的Socket-n或--numeric 禁用反向域名解析,加快查询速度。默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。(不加n显示host信息,加了n直接显示ip)-p或--programs 使用 -p 选项查看进程信息(如对应进程是tomcat,就会在最后一列展示出来)-t或--tcp:显示TCP传输协议的连线状况-l或--listening:显示监控中

2021-05-14 16:52:00 51

原创 04、linux 常用命令

1.sort 排序选项:-n 按大小排序 ; -r 倒序 ; -k3 排序规则 结果的第三列按文件大小排序: ls -l | sort --key=51. 获取当前目录下占用磁盘空间最大的3个文件或目录ls -l|sort -k5nr |head -3 (按结果的第5列倒序排列——第5列表示文件大小,n表示按大小排序)2.cut ,撷取,处理文件的每一行,处理成标准输出(同一行里面的数据进行分解!)格式:cut -d '分隔字符' -f fields-d :后面接分隔字符。与

2021-05-14 16:49:03 73

原创 03、文件权限与文件操作

一、文件及文件操作1.mkdir +文件名 在当前路径下新增一个文件夹 (可以cd 进入新文件夹继续往下创建,或者mkdir -p 文件夹1/文件夹2)2.rm +文件 删除文件(文件夹不能删除)(删除路径/文件夹可以用 rm -rf +文件夹 强力、递归删除文件夹下的所有文件和文件夹——存在占用或只读的文件也能删掉)3.创建目录同时设置目录的权限——mkdir -m 777 文件夹(不指定时,mkdir默认)4.cat 查看文件内容5.新增文件 :touch +文件名二、用户权限操

2021-05-08 14:28:37 124

原创 02、linux命令

一、结构:命令+选项+参数二、ls命令ls:展示当前文件夹下的文件ls -l:展示当前文件夹下的文件并展示各个文件的详细信息ls -t:按时间倒序排列ls -lt:展示详细信息并按时间倒序排列(ls -tl也可以)——全名的时候不能多个选项叠加(如ls --all就不能再加其他选项了,作用同 ls -a)ls -r:倒序排列ls -l +文件名:仅展示具体文件名的详细信息ls -a 展示全部文件(包括隐藏的文件)ls -R显示递归文件ls -n展示文件UID和

2021-05-08 14:22:07 122

原创 01、linux

1.linux相比windows的优势:稳定性、性能更好、兼容性更好——更适合做服务器(多人访问、长时间启动)2.学习linux的两种途径(1.在自己电脑安装VMware虚拟机,分一部分内存来安装一个linux系统;2.使用腾讯云、华为云提供的公网可以访问的linux系统——用mac终端直接访问(ssh命令——安全外壳协议,通过22号端口,用用户名和密码连接(或用公钥和私钥连接)))3.linux系统内核linux底层是文件系统(linux一切都是以文件的形式存在),树形结构,根..

2021-04-29 17:46:00 49

空空如也

空空如也

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

TA关注的人

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