自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Langchain-Chatchat搭建本地知识库教程

待补充

2024-03-14 17:36:06 292

原创 搭建笔记:jenkins+git+docker+k3s+k9s+dashboard+Harbor+prometheus+grafana

spec: #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用。app: nginx #为该Deployment设置key为app,value为nginx的标签。app: nginx #为该Deployment设置key为app,value为nginx的标签。labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod。kind: Deployment #该配置的类型,我们使用的是 Deployment。

2023-12-06 14:45:45 160

原创 Django 缓存(二)

函数提供静态文件,并将其设置为缓存值。最后,我们将内容作为HTTP响应返回。中获取并将其设置为缓存值。最后,我们将结果作为上下文传递给模板进行呈现。函数呈现片段,并将其设置为缓存值。最后,我们将片段作为HTTP响应返回。,并尝试从缓存中获取静态文件内容。如果缓存中不存在内容,则使用。,并尝试从缓存中获取页面片段。如果缓存中不存在片段,则使用。在上面的示例中,我们定义了一个缓存键。在上面的示例中,我们定义了一个缓存键。在上面的示例中,我们定义了一个缓存键。如果缓存中不存在对象,则从。,并尝试从缓存中获取。

2023-12-06 14:15:34 89

原创 Django 缓存(一)

在Web应用程序中,缓存是一种优化技术,它可以在多个请求之间存储和重用数据。在Django中,缓存是一种内置的功能,可以让您轻松地缓存查询、页面片段、静态文件等。本文将介绍Django中缓存的详细信息,包括缓存的类型、使用方法、配置选项以及示例。

2023-12-06 14:13:56 91

原创 FastAPI-3-APIRouter简单用法

APIRouter简单用法

2022-04-29 19:07:32 3115 1

原创 FastAPI-2-获取入参+异步处理

1.获取参数from pydantic import BaseModelfrom fastapi import FastAPIimport uvicorn as uapp = FastAPI()@app.get("/getInfo/{name}")def geturl(name: str): # 请求方式:http://127.0.0.1:9003/getInfo/zhangsan return {"msg": "这是get请求url参数", "name": name

2022-04-29 18:38:50 624

原创 FastAPI-1-简介及入门

1.1FastAPI是什么?FastAPI是一个现代的,快速(高性能)python web框架。基于标准的python类型提示,使用python3.6+构建API的Web框架。FastAPI的主要特点如下: 快速:非常高的性能,与NodeJS和Go相当,是最快的Python框架之一。 快速编码:将开发速度提高约200%到300%。 更少的bug:减少大约40%的开发人员人为引起的错误。 直观:强大的编辑器支持,调试时间更短。 简单:易于使用和学习。减少阅

2022-04-29 16:32:50 182

原创 一次全链路压测-总结

背景:公司接到私有化项目部署,由于没有各个微服务的真实能力,往往项目经理拉会开发评估需要的资源,但是没有测试数据支撑,导致评估的资源往往到线上真实使用量高太多,客户经常抱怨给的服务器资源使用的并不多,所以组织这次压测,目的是得到各个微服务的能力及全链路合理的资源配比。梳理服务准备环境压测策略压测过程压测结论...

2022-04-29 16:17:30 632

原创 locust(三)使用更快的FastHttpUser 提高性能

Locust’s default HTTP client uses python-requests. It provides a nice API that many python developers are familiar with, and is very well-maintained. But if you’re planning to run tests with very high throughput and have limited hardware for running Locust

2022-03-21 10:17:48 7143

原创 fio压测磁盘读写性能

FIO是测试IOPS的非常好的工具,用来对磁盘进行性能测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。1、测试用文件[global]ioengine=libaiodirect=1time_basedruntime=120refill_buffersnorandommaprandrepeat=0group_reportingsize=10Gfilename=/data/fiodata[seq-read-64K-Q32-T1]rw

2022-03-21 10:04:05 1356

原创 locust(二)配置prometheus和grafana

一、Prometheus介绍Prometheus是一个开源的系统监控和报警系统,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。二、grafana介绍Prometheus的重要组件之一,提供监控仪表盘,可视化监控数据的功能三、locust介绍Locust 是一个开源负载测试工具,使用的‘协程’方式,有webui图形界面、无图形界

2022-03-02 19:56:44 8781

原创 locust(一)http 接口demo

Locust是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。这个想法是,在测试期间,一群蝗虫(Locust)会攻击你的网站。您定义了每个蝗虫Locust(或测试用户)的行为,并且实时地从Web UI监视群集过程。这将有助于您在让真正的用户进入之前进行测试并识别代码中的瓶颈。Locust完全基于事件,因此可以在一台计算机上支持数千个并发用户。与许多其他基于事件的应用程序相比,它不使用回调。相反,它通过协程(gevent)机制使用轻量级过程。每

2022-02-28 12:03:00 9814

翻译 Jmeter(四十五)Logic Controllers 之 Throughput Controller(控制业务比例)

不管前面是地雷阵还是万丈深渊,我都将勇往直前,义无反顾,鞠躬尽瘁,死而后已。                        --朱总理一、官方文档 19.2.7 Throughput Controller The Throughput Controller allows the user to control how often it is executed. There are two

2022-02-28 11:50:15 155

转载 Jmeter(三十六)纵横并发、限制QPS

一、纵横并发Jmeter设计并发事件,这应该是一项必备技能。首先来看并发的概念。通常在性能测试中会涉及到并发用户数的概念,有关并发用户数(系统用户数)的详解后续再记。(有关并发、并行的概念参考https://blog.csdn.net/qq_33290787/article/details/51790605)并发:本质为一个CPU(或多个CPU)在若干道程序(或线程)之间的多路复用。参考知乎大神的讲法:并发指的是该系统有处理多事务的能力,不一定是同时。啃了啃虫师的一篇博客http

2022-02-28 11:49:57 854

转载 Jmeter(二十五)Jmeter之系统函数

忘了Jmeter4.0已发布((*^▽^*))具体优化项还没体验,记录一下,传送门:http://jmeter.apache.org/download_jmeter.cgi  Jmeter的系统函数已经发布了许多函数,并且实现了N多功能,(可以自行开发自定义函数哦~)记几个常用的函数:  ${__time(,)}-->时间戳:          参数一:日期格式---${__time(yyyy-MM-dd-HH-mm-ss,)}              这里边有个误区,大写M是月份,

2022-02-28 11:49:24 194

转载 Jmeter(二十一)Jmeter-Question之“不同线程组之间传递变量”

 Jmeter中增添原件是以线程组为‘基本单位’的,贴张图,显而易见:                          测试计划节点下的内容                      线程组节点下的内容  因此,变量只能在当前的线程组下进行传递。做个小Demo,立即试试:           测试结论:不同线程组之间的变量不能共享。那么该如何解决该问题呢?   解决方案:使用函数${__setProperty()}      

2022-02-28 11:49:10 216

转载 Jmeter(三十五)聚合报告

Jmeter的聚合报告是一个非常nice的listener,接口测试以及性能测试方面都会用到这个nice的监听器。  那么优秀在什么地方呢?上图    日常工作中可能只关注这部分内容:    可是这里边的指标真的都懂么?看了几篇知名大师的博客,都侧重谈了聚合报告这块的内容;当然,我在面试过程中,也经常有问在简历上写着“精通Jmeter”的面试者一些关于聚合报告方面的问题,遗憾,能回答上来的寥寥无几;或者说能答到重心的不多。可能本身这块的一个指标就存在一定的误区。  虽说在一些

2022-02-27 08:41:26 575

原创 python(七)-多线程-线程池concurrent.futures

'''线程池:concurrent.futures主线程想获取子线程状态,返回值。。。。统一了多线程和多进程的编码格式,方便切换'''import timefrom concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor,as_completeddef runner(times): time.sleep(times) return timesexecutor = ThreadPoolExec..

2022-02-27 08:40:59 412

原创 python(六)-多线程-Semaphore(信号量)

Semaphore对象内部管理一个计数器,该计数器由每个acquire()调用递减,并由每个release()调用递增。计数器永远不会低于零,当acquire()发现计数器为零时,线程阻塞,等待其他线程调用release()=============控制并发数量=============import threadingimport timeclass Chi(threading.Thread): def __init__(self,sem,i): super().__..

2022-02-27 08:40:34 419

原创 python(五)-多线程-condition(条件变量)

什么是conditioncondition 多线程条件变量,即在满足特点的条件下,线程才能访问相关的数据,这种同步机制就是一个线程等待特定的条件,当另一个线程满足条件后通知它,该等待线程才会执行,一旦条件满足,该线程就会获得锁,从而独占共享资源的访问。常用方法acquire:获取锁release:释放锁wait:等待获取通知,可以设置超时notify:唤醒一个或多个等待线程notify_all(唤醒所有等待此条件的线程)===========举例(小爱和小度对话)============.

2022-02-27 08:40:26 930

原创 python(四)-线程间同步-Lock、Rlock

为什么线程间数据不一致?import disdef add1(a): a +=1print(dis.dis(add1)) #查看函数字节码运行方式==============结果============651 0 LOAD_FAST 0 (a) 3 LOAD_CONST 1 (1) 6 INPLACE_ADD 7 STORE..

2022-02-27 08:40:18 238

原创 python(三)-线程间通讯-queue

现在很多企业会混淆QA和测试工程师,毕竟一些小企业也没有太多钱养那么多人。一、先看一下两者的职责:软件测试人员的职责:尽可能早的找出软件缺陷,确保得以修复。质量保证人员(QA)主要职责:创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。从上面能看出,测试人员重点关注的是软件的缺陷-跟踪-修复,来保证质量,QA则是通过迭代的流程合理性来定义迭代规范来保证质量;二、人员要求:测试人员高低都可以,资深可以做自动化,专项。。。实习生可以简单功能;但QA要求必有有一定经验..

2022-02-27 08:40:11 324

转载 Jmeter(二十三)Jmeter-Question之“批量造数据”

 日常工作中,无论是在做功能测试、接口测试还是性能测试,经常会有这么一个场景出现,“那个谁谁谁,帮我加几条订单”,“那个某某某,给购物车增添几个产品”,“在数据库加几百条数据”。。。等等,通常少数量,或者能够人为解决的就人工解决,那么如果是数量比较大,数万条数据,总不可能一条一条进行增添吧?  So,在造数据这块通常能够想到的便是数据库通过“存储过程”来进行增添,或者外部程序or工具,Jmeter当然也支持的,做的小Demo:  原件:JDBC连接池     计数器     JDBC Req

2022-02-27 08:38:47 1618

转载 Jmeter(二十二)Logic Controllers 之 Throughput Controller(控制业务比例)

不管前面是地雷阵还是万丈深渊,我都将勇往直前,义无反顾,鞠躬尽瘁,死而后已。                        --朱总理一、官方文档 19.2.7 Throughput Controller The Throughput Controller allows the user to control how often it is executed. There are two

2022-02-27 08:38:03 81

转载 Jmeter(十九)Logic Controllers 之 Module Controller and Include Controller

ModuleController ---模块控制器  测试计划设置“独立运行没每个线程组”   线程组2中使用Module Controller执行线程组1中的Sampler:  紧接着,将线程组1disable掉,执行:   结果树中是从线程组2开始执行,Module Controller依然可以控制到线程组1中的Dummy Sampler。 可以再增添个Test Fragment,试一试。        This isModul..

2022-02-27 08:36:25 114

原创 sipp命令 各参数含义

sipp -sn uac 172.31.89.4:5060 -r 1 -rp 3000 -inf data.csv -p 7098 -i 172.31.89.242 -s 8001 -sf uac_onecall.xml –m 1000 –l 900各个参数说明:172.31.89.4:5060:远端地址和端口(在脚本中用[remote_ip],[remote_port]引入)-r 1 -rp 3000:每三秒钟发一个呼-inf data.csv:引入数据配置文件-p 7098:本地端口(在

2022-02-26 07:40:38 1567

转载 Jmeter(十八)Logic Controllers 之 Random Controller and Random order Controller

Random Controller就比较简单了,完全随机!毫无章法。毫无任何规律的运行。还有一个Random order Controller,随机顺序控制器就像一个简单的控制器,它将最多执行一次子元素,但节点的执行顺序是随机的。看Demo:  ...

2022-02-26 07:38:34 82

转载 Jmeter(十七)Logic Controllers 之 Interleave Controller

Interleave Controller----交错控制器,对于交错控制器官方文档解释的很清楚,上例子:可以看到运行一次Interleave Controller下的Sampler,运行一次Interleave Controller之外的Sampler。如此不停的交错循环。Demo2:    两个交错控制器,执行结果:    可以看到,循环交错1、A;2、B;3、C。Demo3:    主交错器选择ignore sub-controller bl..

2022-02-26 07:38:17 88

转载 Jmeter(十六)Logic Controllers 之 Runtime Controller

 Runtime Controller-----运行时间控制器;控制其下的Sampler运行时间。  该控制器较为简单,官方文档也没作太多说明。照着Blazemeter写个例子:      运行,查看结果。    可以看到运行了5秒。...

2022-02-26 07:38:00 83

转载 Jmeter(十五)Logic Controllers 之 while Controller

while Controller是控制循环的Controller,条件判断的Controller。先看看官方Demo。    while Controller控制它的子对象,直到false为止。并且还提供了三个条件:        1、blank:最后一个循环中失败时的空白退出循环.        2、LAST:最后一个循环中失败时的退出循环。如果在循环失败前的最后一个示例,则不要进入循环。        3、Otherwise:当条件等于字符串“false”时退出(或不进入)循环。

2022-02-26 07:37:43 241

转载 Jmeter(十四)Logic Controller 之 If Controller

 If Controller---如果控制器;属于逻辑判断类型的组件,其实学过代码的都知道if--else,while等都是常用的逻辑判断关键词,Jmeter也提供了逻辑判断--If Controller便是如此。  写个例子加深印象。  正在上传…重新上传取消  正在上传…重新上传取消    正在上传…重新上传取消  DummySampler是Jmeter第三方插件中的比较典型的一个插件,该插件相当于小型mock,可以自定义请求响应报文内容,mock部分内容后续记载。  此

2022-02-26 07:37:19 216

转载 Jmeter(十三)Debug Sampler

上篇记录了关联的一些内容。当然,关联是有“风险”的,经常写的正则表达式,jsonpath,xpath自己认为是没问题的,可是就是跑起来有问题,百思不得其解,究竟是数据问题还是表达式的问题,本篇就来记录一个“神器”-----Debug Sampler    老规矩,先看看官方文档作何解释。    啊哈,它是作为监听变量的一个采样器。  无论是从参数化、关联等涉及到变量输出的内容,Debug Sampler都会进行打印出。    测试计划中设置的变量    

2022-02-26 07:35:58 1158

转载 Jmeter(十二)关联

关联在实际业务需求中是随处可见的,比如:支付需要提交订单成功的订单号;修改个人资料需要登录成功响应报文信息。。。总之关联无处不在,今天来记一记Jmeter的关联功能。  Jmeter关联的方法比较常用的是正则表达式提取器,正则表达式提取器属于后置处理器,那么久抛出了一个比较大的知识点----正则表达式;  其实,正则表达式就是一种文本模式,相信都在windows我的电脑中搜索过文件嘛,那么肯定使用过“*”,其实都是类似。  记几个比较常用的:      ^ ----->为匹配输入字符串

2022-02-26 07:35:46 255

转载 Jmeter(十一)参数化

有关参数化的概念,前面有篇随笔已经粗略的提到了参数化的一点内容。本篇来主要记录参数化。  Jmeter的参数化方式有很多,在此我来一一记录,对待不同个规模、业务模型、数据量来进行记录参数化的方法。  一、前置处理器--->用户参数        虽然请求会失败,但是只是看请求参数是否能够传输成功  将线程数增添为两个。      可以看得到,该用户变量值one、two是传输过来的。  用户参数组件有很多灵活的用法。可以查看该帮助文档.

2022-02-26 07:35:33 250

转载 Jmeter(十)检查点

 检查点又名断言,我们在手工测试过程中肉眼以及自己的逻辑思维对实际结果进行判断是否与预期结果一致,但是工具是死的,没有眼睛,没有思维,并不知道需要判断的信息在哪块,或者是来判断什么东西,我们需要让工具更灵活一点,只有给工具加入一种逻辑,才会进行执行某种逻辑。而检查点则就是工具的‘眼睛’用来判断是否达到了预期的效果,或者符合某一条件。  Jmeter中提供了很多断言:    用到最多的便是响应断言;顾名思义,响应报文的检查点。    Apply to:Main sampler on

2022-02-26 07:35:17 206

原创 python(二)-多线程两种写法

"""方法一:创建函数并且传入Thread 对象中 ,适用小程序"""import timedef get_detail_html(url): print(url) time.sleep(2) print('thread1 end')thread1 = threading.Thread(target=get_detail_html,args=("",))# thread1.setDaemon(True)#设置线程为守护线程,当主线程退出,守护线程直接退出thre.

2022-02-25 09:54:10 124

转载 Jmeter(九)JDBC连接池

 JDBC为java访问数据库提供通用的API,可以为多种关系数据库提供统一访问。因为SQL是关系式数据库管理系统的标准语言,只要我们遵循SQL规范,那么我们写的代码既可以访问MySQL又可以访问SQL Server.  它的作用就是与数据库建立连接,发送SQL语句,以及处理结果。  Jmeter也不例外,就JDBC连接池控件,可以通过JDBC连接池进行连接数据库并进行操作。  So,今天就来记一记JDBC,看看在Jmeter中是如何进行操作数据库的。  (以MySQL为例)  其实在之

2022-02-25 09:52:56 752

转载 Jmeter(八)HTTPCookie管理器

 Cookie绝对是日常工作以及技术中一个绕不过去的‘角色’,正常各种各样的业务需要Cookie的存在。Jmeter中也有支持发送Cookie的组件,但是,仅是后话;在此还是有必要先记一记Cookie到底是什么?Session又是什么?各在系统中充当了一个怎么样的角色,起到了哪些作用?   得回到http协议的结构以及特点,http协议中定义了信息头、响应头的存在,而cookie又是信息头的一部分,那么又与我们之前的HTTP信息头管理器和HTTPCookie管理器如何进行区分,或者在工作中如何使用。

2022-02-25 09:52:42 1032

转载 Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  午休时间再来记一记,嗯。。回顾着使用Jmeter的历程,想着日常都会用到的一些功能、一些组件;敲定了本篇的主题----------是的、脚本优化。  说起脚本优化,为什么要优化?又怎么优化?是个永恒的话题。因为毕竟每个人的精力不同、业务不同、需要不同;但是可以肯定的是,但凡有做自动化之类(骚操作),那么便离不开一个概念。什么呢?-------脚本与数据分离  何谓“脚本与数据分离”?  所谓脚本与数据分离,可以举一个简单例子,2016年,具体不清楚是什么时间,在逛微博的时候,看到德国...

2022-02-25 09:52:26 733 1

转载 Jmeter(六)Jmeter脚本包含要素及书写习惯

 Jmeter有丰富的组件,逻辑控制器、配置原件、Sampler、定时器、前置处理器、后置处理器、断言、监听器;而编写脚本一定要养成个人习惯,让人看到Jmeter的脚本目录结构树能够一目了然;因此,首先需要了解的是协议、以及Jmeter的元件执行顺序来作为参考,养成自己的书写习惯。  嗯。。关于协议部分,在协议分类随笔中进行记录,本篇就书写习惯以及一个完整的Jmeter脚本应该包含什么做以记录。  Jmeter组件执行顺序:(摘自《全栈Jmeter》)    1、配置原件(如果存在)    

2022-02-25 09:51:57 502

sqlite-jdbc-3.43.0.0.jar

sqlite-jdbc-3.43.0.0.jar

2023-11-26

sqlite-jdbc-3.43.0.0.jar 驱动

sqlite-jdbc-3.43.0.0.jar 驱动

2023-11-26

空空如也

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

TA关注的人

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