使用JMeter(组件详细介绍+使用方式及步骤)
JSON操作符
在我们使用请求时,经常会遇到JSON格式的请求体,所以在介绍组件之前我会将介绍部分操作符,在进行操作时是很重要的
Operator | Description |
$ | 表示根元素 |
@ | 当前元素 |
* | 通配符,所有节点 |
.. | 选择所有符合条件的节点 |
.name | 子元素,name是子元素名称 |
[start:end] | 数组切片操作符 |
[?(<expression>)] | 过滤器表达式,表达式要评估为布尔值 |
重要组件
在了解组件之前,我们要先了解,在JMeter中,元件的作用域以及执行顺序
作用域: 主要由测试计划的树形结构中的元件父子关系来确定
执行顺序:
-
取样器中的元件内组件不依赖其他元件就可以执行,所以取样器不存在作用问题
-
元件的作用域只对它的子节点有作用
-
其他作用域默认根据测试计划中树形结构来决定
所以对于当进行测试时,如果出现了问题,在检查完请求体以及各项信息之后还有问题,那就可以检查一下组件的顺序
线程组
用来控制JMeter中要用来执行测试的线程数,也可以把一个线程理解为一个测试用户
HTTP取样器
用来设置 http 请求
如果我们要满足中文,可以在内容编码出填写 utf-8
查看结果树
用来查看请求的结果以及请求和响应的详细信息
HTTP Cookie管理器
添加了 HTTP Cookie管理器 之后,就会自动存储并发送Cookie
可以像Web浏览器一样存储和发送Cookie,如果http请求中有Cookie,并会用来进行特定网址的请求
添加之后,就会自动获取cookie并添加入请求,并不需要额外的配置
HTTP 请求默认值
我们可以将所有请求的公共部分填在一起,之后进行每次请求的时候就会获取默认值
一般是填写: 协议、IP、端口号
继承这些默认值的请求就无需再填写对应的内容
用户定义的变量
有时我们只想在固定的场景下使用参数,并且改动后不希望影响其他的脚本
需要结合json操作符
使用方法: 在 HTTP 请求的取样器中引入定义的变量 ${参数名}
使用场景: 变量需要在多个脚本中使用,方便进行统一管理和修改,尤其是多个请求的变量都是同一变量时,就可以进行统一管理
JSON断言
接口发送请求成功,响应码为200(就是自己设置的请求成功的响应码)并不能完全代表接口请求成功,此时就需要关注接口响应数据是否符合预期
-
针对某一HTTP请求接口添加JSON断言
-
添加JSON配置: 和JSON提取器语法配置相同
具体设置:
-
不选 Additionally assert value ,表示添加断言值,只会用来判断字段是否存在,不会对字段的值进行匹配
-
选择 Additionally assert value ,表示必须添加 Expected Value 期望的断言值,如果此时没有勾选 Match as regular expression ,就会进行完整政正则匹配,即获得内容要和设置内容完全一致
-
如果选择 Additionally assert value ,并且选 Match as regular expression 正则匹配,则Expected Value 只需要填写部分关键词就行,类似于模糊查询
其中正则表达式需要我们进行了解,我将对一些常见的正则表达符号进行介绍
字符 | 描述 |
[……] | 匹配括号内的所有字符 |
[^……] | 匹配除了括号内的所有字符 |
[A-Z] | 匹配所有大写字母 |
[a-z] | 匹配所有小写字母 |
. | 匹配除换行符之外的任何单个字符 |
\s | 匹配所有空白符 |
\S | 匹配所有非空白符,不包括换行 |
\w | 匹配字母、字母、下划线 |
\d | 匹配任意一个阿拉伯数字 |
更多详细可以查看网页: https://www.runoob.com/regexp/regexp-syntax.html
JSON提取器
接口相应成功后,通过提取返回值对应的字段,可以用于其他接口的参数配置,尤其是 token
那我们要怎么获取对应信息呢?这里也要我们结合json操作符
假设以下是我的json字段
{"code": 200,"data": null,"message": "æ\u0088\u0090å\u008A\u009F"
}
那么此时我要使用 code ,要怎么获取呢?
这里我们查询到了之后,就要去JSON提取器中设置了
配置完成之后,我们就要去 HTTP请求 中进行使用了
然后点击运行,我们就可以看到请求中带入了设置的JSON字段了
CSV数据文件设置 (CSV Data Set Config)
在实际使用中,对于一个接口,我们不可能一直只有一个用户会使用这个接口,更多时候是若干个用户同时使用,那么如果我们只测试一个账号,就会有很多问题无法完全体现,为了更加真实的模拟正常情况,我们就需要同时使用多个用户,这里就需要我们使用 数据文件设置了
在使用之前,我们先来了解这些配置
遇到文件结束符再次循环: 若选择为 true ,当数据不够时就会从头开始重新取; 若选择为 false ,就需要勾选后续的配置,遇到文件结束符就会停止线程(不勾选就会报错)
那么我们要怎么编写 csv文件 呢? 使用 Excel ,编写表格完成之后保存为 .csv 文件
修改配置
修改完之后,当我们发送请求,程序就可以从 csv文件 中获取参数(从上往下依次获取)
同时,因为我们添加了多组数据,我们就需要修改线程数,一个线程用来对应一组数据
只有这样才能保证每次获得的数组不一样
运行结果
同步定时器(集合点)
我们虽然定义了多个线程,但是我们怎么能保证他们是同一时间进行呢?怎么保证线程不是一个一个进行呢?
我们可以通过右上角的三角符号查看线程的运行顺序,这里还可以查看运行时间以及未完成的线程个数
如果我们要让这些线程同时运行,就需要使用同步定时器
在使用之前,我们也要来查看它的配置
需要注意的是: 模拟用户组的数量是不能超过线程组里配置的线程数
在实际运行中, 当进行等待的 进程数>=设置数 时,就直接发送请求,我们举个例子:
在等红绿灯的时候,如果规定一个路口最多能经过5个行人,但是实际情况确是,你不知道什么时候能够到达5个人,还很有可能在到达5个人的时候,同时还达到了6个人,此时已经达到了经过条件,那么也是可以通过路口的
所以 当配置的数量小于线程数时,最好把循环打开,避免最后一次状态为准备好的线程数量达不到进行并发的数量
事务控制器
主要是用来进行测试执行嵌套测试元素所花费的时间,用来模拟用户进行一系列操作的测试
可以更好的测试复杂环境
在没有添加事务控制器之前,一个接口就是一个事务
添加之后,就可以将多个接口放在一起表示一个业务
举例:
从这些测试结果中,我们要怎么来看具体性能怎么样呢?
指标 | 对应 | 说明 |
Sample | 样本数 | 发起的HTTP请求调用数 |
Average | 平均值 | 平均响应时间,单位为毫秒 |
Median | 中位数 | 请求调用响应时间的中间值,也就是50%请求调用的响应时间,单位为毫秒 |
90%Line | 90%百分位 | 90%请求调用的响应时间,单位为毫秒 |
95%Line | 95%百分位 | 95%请求调用的响应时间,单位为毫秒 |
99%Line | 99%百分位 | 99%请求调用的响应时间,单位为毫秒 |
Min | 最小值 | 请求调用的最小响应时间,单位为毫秒 |
Max | 最大值 | 请求调用的最大响应时间,单位为毫秒 |
Error% | 异常% | 调用失败的请求占比,调用失败一般指响应断言失败或者请求调用出错 |
Throughput | 吞吐量 | TPS/QPS 每秒处理的事务数 |
KB/sec | 接收/发送 | 每秒网络传输的流量大小,单位为KB,这个指标是以网络传输的大小来衡量网络的吞吐量 |
插件
在真实情况下,我们经常需要一点一点的增加线程数,所以需要一些插件
在这之前,我们要为JMeter添加能够添加插件的功能
https://jmeter-plugins.org/install/Install/
下载完之后,放入 自己下载的JMeter文件下的lib/ext路径下 ,然后重启JMeter
重启之后,右上角就多了一个图标
点击,对以下常用插件进行下载
点击右下角下载,下载完成之后会自动重启
下载完成之后,就可以在线程和监听器中看到新的元件
Stepping Thread Group
让我们举一个例子
表示,总共有30个进程,从零开始,每一秒有5个进程做好准备,一组准备好之后,等三秒进行下一组准备,等线程数达到30之后,线程开始运行,并保持运行60秒就开始结束,一次结束5个线程,每隔1秒就会结束5个线程
Response Times Over Time
在测试过程中,它可以帮助测试人员观察并分析响应时间的实时平均值以及整体响应时间的走向。通过这一监听器,测试人员能够更直观地了解系统在不同时间点的响应性能,从而发现可能存在的性能问题或瓶颈。
横坐标通常代表运行时间,而纵坐标则代表响应时间(单位是毫秒)。测试人员可以根据图形中的趋势线来判断响应时间的稳定性以及是否存在大的波动。例如,如果响应时间在某个时间点突然增加,这可能意味着系统在该时间点遇到了性能问题。
Transactions per Second (TPS)
TPS监听器是一个用于分析系统吞吐量的重要工具。TPS,即每秒事务数,表示一个客户和向服务器发送请求后服务器做出反应的过程。这个指标反映了系统在同一时间内处理业务的最大能力。TPS值越高,说明系统的处理能力越强。
在使用TPS监听器时,横坐标通常代表运行时间,而纵坐标则代表TPS值。通过监听器展示的图表,可以清晰地看到TPS值随时间的变化情况。在图表中,红色通常表示通过的TPS,而绿色可能表示失败的TPS。这有助于我们快速识别系统性能的变化和瓶颈。
测试报告
JMeter的测试报告是一个非常详细的文档,它提供了测试执行结果的详细信息
我们需要在控制台使用对应指令来生成报告
jmeter -n -t 脚本文件名(加后缀) -l 日志文件名 -e -o 目录(被保存的地方)-n : 无图形化运行(后台运行,不需要打开JMeter运行)
-t : 被运行的脚本
-l : 将运行信息写入日志文件,后缀必须要为 jtl 的日志文件
-e : 生成日志报告
-o : 指定报告的输出目录
注意: 日志文件和目录可以不存在,若为已经存在的情况下需要保证内容为空,否则会出现错误
打开 index.html ,就可以看到测试报告了
相关文章:
使用JMeter(组件详细介绍+使用方式及步骤)
JSON操作符 在我们使用请求时,经常会遇到JSON格式的请求体,所以在介绍组件之前我会将介绍部分操作符,在进行操作时是很重要的 Operator Description $ 表示根元素 当前元素 * 通配符,所有节点 .. 选择所有符合条件的节点 .name 子元素,name是子元素名称 [start:e…...
【大模型聊天】实时交互技术选型
在Python开发中,实现RAG问答或大模型聊天功能无需强制使用WebSocket,技术选型需结合实时性需求与交互场景。以下是技术分析及示例: 技术方案对比 技术适用场景优缺点WebSocket双向高频交互(如实时对话)优点࿱…...
计算机网络:计算机网络的概念
1.计算机网络:由若干个结点和链接这些的链路组成。 2.集线器(Hub):可以把多个结点连接起来,组成一个计算机网络。 不能避免数据冲突的情况 3.交换机(Switch):可以把多个结点连接起来&#x…...
Trae:引领未来的 AI 编程新时代
目录 Trae:引领未来的 AI 编程新时代 更快、更好、更准确的 AI IDE 无缝协作,AI 赋能开发者 Builder 模式:从 0 到 1 的智能助力 深度上下文理解,精准满足开发需求 实时代码补全,极致提升开发效率 智能 AI 协作…...
Vue _总结
文章目录 一 Vue介绍1 什么是Vue.js2 MVVM二 第一个例子1 引入vue2 html中用法3 创建vue实例对象三 Vue基本语法1 v-text2 v-bind3 v-on4 v-model5 v-if6 v-for7 计算属性8 组件化全局注册本地注册9 生命周期10 员工程序使用vue.js重构list.htmladd.htmlupdate.html四 使用vue-…...
Refreshtoken 前端 安全 前端安全方面
网络安全 前端不需要过硬的网络安全方面的知识,但是能够了解大多数的网络安全,并且可以进行简单的防御前两三个是需要的 介绍一下常见的安全问题,解决方式,和小的Demo,希望大家喜欢 网络安全汇总 XSSCSRF点击劫持SQL注入OS注入请求劫持DDOS 在我看来,前端可以了解并且防御前…...
基于深度学习的医学图像分割算法研究——结合MRI/CT图像的肿瘤区域自动分割与三维重建
针对课题《基于深度学习的医学图像分割算法研究——结合MRI/CT图像的肿瘤区域自动分割与三维重建》,以下是详细的研究框架与技术实现方案: 1. 核心研究要点 主要目标:构建端到端的深度学习模型,实现MRI/CT肿瘤区域的精准分割,并通过三维可视化支持临床诊断。核心挑战: 医…...
企业如何选择研发项目进度管理软件?盘点15款实用工具
这篇文章介绍了以下工具: 1. PingCode; 2. Worktile; 3. 腾讯 TAPD; 4. 华为 DevCloud; 5. 亿方云; 6. 阿里云效; 7. CODING 码云; 8. 明道云; 9. 进度猫; 10. 轻流等。 …...
【2024_CUMCM】图论模型
基本概念 注:以下叙述大多是自话,夹杂多数不专业表述 点集、边集 图论中图是由点和边组成的 G(V,E) V--点集 E--边集 权 G(V,E,W) W--权 一般都有权,构成赋权图 赋权图 在图中每条边都赋予一个非负实数权重的图,就是给每一条…...
Unity UGUI下优化需要射线检测类的UI元素的一种方式
直接上脚本 - 原理探究 先看MaskableGraphic 可以看到继承了Graphic,继续深入 在构造函数中找到了useLegacyMeshGeneration 而useLegacyMeshGeneration用来判断是否使用旧的网格生成系统,这里我们使用新的 在这个方法中,Graphic默认通过…...
unity3d 背景是桌面3d数字人,前面是web的表单
是可以实现的,但涉及多个技术栈的结合,包括 Unity3D、Web 技术(HTML、JavaScript)、以及可能的 WebGL 或 WebRTC 技术。大致有以下几种实现方案: 方案 1:Unity 作为独立应用(桌面端࿰…...
一周热点-Claude 3.7 Sonnet-在响应和思考模型之间切换
Anthropic 最近发布了 Claude 3.7 Sonnet,这是一款具有混合推理能力的模型,允许用户在即时响应和扩展思考模式之间切换,以适应不同类型的任务需求。以下是关于 Claude 3.7 Sonnet 的详细介绍: 1 混合推理模式 标准模式:快速生成响应,适合日常对话和简单任务,能在短时间内…...
【大模型安全】安全解决方案
【大模型安全】安全解决方案 1.技术层面2.数据层面数据收集阶段训练阶段模型推理阶段 1.技术层面 在使用大语言模型时,通常有几种选择:一种是采用封装好的大语言模型SaaS云服务;另一种是在公有云上部署自有的大语言模型,并通过权…...
Clion快捷键、修改字体
文章目录 一、Clion快捷键1.撤销:crtl Z2.重做:crtl shift Z3.删除该行:crtl Y4.多行后退:选中多行 Tab5.多行缩进:选中多行 shift Tab 二、修改注释的斜体 一、Clion快捷键 1.撤销:crtl Z 2.重做…...
软件工程笔记下
从程序到软件☆ 章节 知识点 概论☆ 软件的定义,特点,生存周期。软件工程的概论。软件危机。 1.☆软件:软件程序数据文档 (1)软件:是指在计算机系统的支持下,能够完成特定功能与性能的包括…...
探索DeepSeek:牛仔技术的未来在哪里?
引言 在当今快速发展的科技世界中,DeepSeek作为一种前沿技术,正逐渐改变我们对信息搜索和数据处理的认知。本文将深入探讨DeepSeek技术的核心优势、应用场景以及未来发展趋势,带您全面了解这一技术的魅力所在。 一、DeepSeek技术简介 1.1 什…...
Wireshark抓包标准化流程
1. 软件安装与验证 安装路径规范 按企业要求部署至指定目录: xxxx/xxxx/xxxx/xxxx验证安装完整性: 检查是否勾选 Install TShark(默认已选)确认安装后生成 Wireshark.exe 和 tshark.exe 可执行文件 权限配置 右键点击安装目录下…...
3月8日星期六今日早报简报微语报早读
3月8日星期六,农历二月初九,早报#微语早读。 1、国家卫健委主任:正会同有关部门起草育儿补贴的操作方案; 2、中国代表团出征第12届世界冬季特奥会,共48名运动员; 3、研究显示:2035年中国女性…...
计算机视觉之dlib人脸关键点绘制及微笑测试
dlib人脸关键点绘制及微笑测试 目录 dlib人脸关键点绘制及微笑测试1 dlib人脸关键点1.1 dlib1.2 人脸关键点检测1.3 检测模型1.4 凸包1.5 笑容检测1.6 函数 2 人脸检测代码2.1 关键点绘制2.2 关键点连线2.3 微笑检测 1 dlib人脸关键点 1.1 dlib dlib 是一个强大的机器学习库&a…...
周末总结(2024/03/08)
工作 人际关系核心实践: 要学会随时回应别人的善意,执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己,抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内,职场社交不要放在5min以外 职场的人际关系在面对利…...
Linux第一课
一、Linux背景与发展 1. 发展史 1968年,研究人员开发了Multics操作系统,为后续发展奠定了基础。 1969−1970年,Ken Thompson和Dennis Ritchie在Multics基础上开发了UNIX系统。 1991年,Linus Torvalds发布了Linux操作系统&#…...
【Java基础】Java中new一个对象时,JVM到底做了什么?
Java中new一个对象时,JVM到底做了什么? 在Java编程中,new关键字是我们创建对象的最常用方式。但你是否想过,当你写下new MyClass()时,Java虚拟机(JVM)到底在背后做了哪些工作?今天&…...
《白帽子讲 Web 安全》之身份认证
目录 引言 一、概述 二、密码安全性 三、认证方式 (一)HTTP 认证 (二)表单登录 (三)客户端证书 (四)一次性密码(OTP) (五)多因…...
发行基础:宣传片
转载自官方文件 --------------- 宣传片 概览 作为 Steam 发行流程的一部分,您需要上传自己产品的宣传片。 宣传片将会显示在您的产品商店页的顶端,通常是您的潜在客户第一眼会看见的内容。 最佳实践 在 Steam 平台上,宣传片是产品营销中…...
PAT线上考试注意细节(甲/乙级)
闲谈 从此以后!参加竞赛! 都要为自己留够足够的时间练习! 都要为自己留够足够的时间练习! 都要为自己留够足够的时间练习! 重要的事情说三遍,毕竟这只是我参加各种竞赛的开始! \(ÿ…...
测试用大模型组词
已经把hanzi-writer的js的调用、hanzi-writer调用的数千个汉字的json文件,全都放在本地了。虽然用的办法还是比较笨的。我注意到 大模型也可以部署本地,虽然使用频率低的情况下不划算。 尝试直接通过html的javascript通过api key调用大语言模型&#x…...
【算法 C/C++】一维差分
2025 - 03 - 08 - 第 69 篇 Author: 郑龙浩 / 仟濹 【一维差分】 文章目录 前缀和与差分 - 我的博客差分(一维)1 大体介绍(1)**1 原数组 2 差分数组 3 差分数组的前缀和数组**(2)记录区间操作的边界 2 差分原理是什么??ÿ…...
前后端数据加密传输【最佳方案】
AES和RSA区别 算法类型安全性密钥长度/输出长度速度应用场景AES对称加密高128位、192位、256位快适用于大规模数据加密,入HTTPS协议的数据传输RSA非对称加密高1024位、2048位、4096位较慢适用于数据安全传输、数字签名和身份验证 综上:兼顾安全性和性能…...
爬虫案例七Python协程爬取视频
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python协程爬取视频 前言 提示:这里可以添加本文要记录的大概内容: 爬虫案例七协程爬取视频 提示:以下是本篇文章正文…...
算法每日一练 (9)
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 算法每日一练 (9)最小路径和题目描述解题思路解题代码…...
对接RAGflow的API接口报错
对接RAGflow的API接口,报错: {"status":"success","message":"API连接正常","response":{"code":109,"data":false,"message":"Authentication error: API key …...
智慧城市智慧社区项目建设方案
一、项目背景 在全球化进程加速的今天,城市化问题日益凸显,传统的城市管理模式已难以满足现代社会对高效、智能化管理的需求。智慧城市和智慧社区的概念应运而生,其核心目标是通过信息技术手段,提升城市资源的利用效率࿰…...
Orale数据文件加错位置,你直接rm引发的故障
数据库可能面临硬件故障、人为错误、恶意攻击、自然灾害等多种潜在风险,那么今天这个故障就是由于业务人员加错数据文件的位置,然后直接从物理层面rm -f了,导致了生产的故障! 以下是针对Oracle数据库物理删除数据文件后的快速修复…...
Web网页开发——水果忍者
1.介绍 复刻经典小游戏——水果忍者 2.预览 3.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…...
51 单片机中断控制寄存器 TCON
在 51 单片机中,中断控制寄存器 TCON(Timer/Counter Control Register,定时器 / 计数器控制寄存器)主要用于控制定时器 / 计数器的启动、停止以及外部中断的触发方式等。它既可以按字节寻址,也可以按位寻址,…...
电脑如何在系统默认的壁纸中切换自己喜欢的
1、声明:该切换壁纸仅支持win10。 当你想去切换系统默认的壁纸,但是不知道该怎么切换,别慌,小亦教你几招帮你快速切换自定义壁纸。 我们平常使用的win10桌面壁纸大部分都是 简单、朴素的壁纸,但如果你想要切换自己喜…...
AcWing 600. 仰视奶牛 单调栈模板题
https://www.acwing.com/problem/content/description/602/ 找x右边第一个大于x的数的位置 const int N 1e5 10,T 20;int n; LL a[N],stk[N],top,r[N];void solve() {cin >> n;for (int i 1;i < n;i ) cin >> a[i];for (int i n;i > 1;i --){while(top…...
使用Galaxy创建生物信息学工作流的步骤详解
李升伟 整理 Galaxy 是一个基于 Web 的生物信息学平台,提供了直观的用户界面和丰富的工具,帮助用户创建和管理生物信息学工作流。以下是使用 Galaxy 创建生物信息学工作流的主要步骤: 1. 访问 Galaxy 平台 打开 Galaxy 的官方网站ÿ…...
OmniDrive(2):环境搭建
文章目录 1. 环境安装1.1 cuda 和cudnn安装1.2 依赖包安装2. 准备数据集及权重2.1 下载nuScenes数据2.2 下载预训练权重3. 模型训练及推理3.1 训练3.2 推理根据OmniDrive 官方的环境配置 Environment Setup python 3.9 ubantu 22.04 cuda 11.7 torch1.13.11. 环境安装 1.1 cu…...
计算机底层知识一——从编程语言到可执行程序
好久没写博客了,近段时间事情比较杂,最近终于有时间回归了。其余代码写久了就会遇到许多奇奇怪怪的问题,这些问题绕不开许多底层知识,比如缺少动态依赖库、idea编译失败等等,虽然通过百度等搜索引擎,亦或是…...
HarmonyOS Next~鸿蒙系统ArkCompiler跨平台编译技术的革新实践
HarmonyOS Next~鸿蒙系统ArkCompiler跨平台编译技术的革新实践 引言 在万物互联时代,操作系统对编译技术的需求已从单纯的代码转换演变为跨设备协同、高效资源调度与极致性能优化的综合挑战。华为鸿蒙系统(HarmonyOS)自主研发的ArkCompiler…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_cycle_modules
声明在 src/core/ngx_module.h ngx_int_t ngx_cycle_modules(ngx_cycle_t *cycle);实现在 src/core/ngx_module.c ngx_int_t ngx_cycle_modules(ngx_cycle_t *cycle) {/** create a list of modules to be used for this cycle,* copy static modules to it*/cycle->modul…...
Java多线程与高并发专题——关于CopyOnWrite 容器特点
引入 在 CopyOnWriteArrayList 出现之前,我们已经有了 ArrayList 和 LinkedList 作为 List 的数组和链表的实现,而且也有了线程安全的 Vector 和Collections.synchronizedList() 可以使用。 首先我们来看看Vector是如何实现线程安全的 ,还是…...
Wpf-ReactiveUI-Usercontrol与主界面交互
文章目录 Usercontrol与主界面方法一、使用属性绑定UserControl 部分(MyUserControl.xaml.cs)UserControl 视图模型部分(MyUserControlViewModel.cs)主界面部分(MainWindow.xaml)主界面视图模型部分(MainWindowViewModel.cs)方法二、使用消息传递UserControl 视图模型部…...
MySQL中like模糊查询如何优化?
大家好,我是锋哥。今天分享关于【MySQL中like模糊查询如何优化?】面试题。希望对大家有帮助; MySQL中like模糊查询如何优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中,LIKE 模糊查询虽然非常常见,…...
用Ruby的Faraday库来进行网络请求抓取数据
在 Ruby 中,Faraday 是一个非常强大的 HTTP 客户端库,它可以用于发送 HTTP 请求并处理响应。你可以使用 Faraday 来抓取网页数据,处理 API 请求等任务。下面我将向你展示如何使用 Faraday 库进行网络请求,抓取数据并处理响应。 1.…...
2025天梯训练1
PTA | L3-1 直捣黄龙 30分 思路:多关键字最短路,同时还要记录最短路径条数。 typedef struct node{int from,d,pass,kl;bool operator<(const node &x)const{if(d!x.d) return d>x.d;if(pass!x.pass) return pass<x.pass;return kl<x.…...
DeepSeek教我写词典爬虫获取单词的音标和拼写
Python在爬虫领域展现出了卓越的功能性,不仅能够高效地抓取目标数据,还能便捷地将数据存储至本地。在众多Python爬虫应用中,词典数据的爬取尤为常见。接下来,我们将以dict.cn为例,详细演示如何编写一个用于爬取词典数据…...
揭开AI-OPS 的神秘面纱 第四讲 AI 模型服务层(自研方向)
AI 模型服务层技术架构与组件选型分析(自研方向) 基于自有开发寻训练方向 AI 模型服务层 是 AI-Ops 架构的 核心智能引擎,负责构建、训练、部署、管理和监控各种 AI 模型,为上层应用服务层提供智能分析和决策能力。 AI 模型服务层需要提供一个灵活、可扩展、高性能的平台…...
[通俗易懂C++]:std::optional
[通俗易懂C]:std::optional 考虑下面这样一个函数: int doIntDivision(int x, int y) {return x / y; }如果调用者传入一个语义上无效的值(例如 y 0 ),此函数无法计算一个返回值(因为除以 0 在数学上是未定义的)。在…...