尝试使用jmeter-maven-plugin

前提准备

1、maven项目

2、已安装JMeter、Jenkins、maven、jdk

环境要求:

jmeter>5.6.2

maven >3.9

jdk>1.8

Jenkins ?

备注:jmeter-maven-plugin 无需下载,可查阅相关地址:GitHub - jmeter-maven-plugin/jmeter-maven-plugin: The JMeter Maven Plugin

创建maven项目

打开ij编辑器,File-->New-->Project,选择Maven,点击next,输入Groupid跟ArtifactId(这个目前随便填就好)

添加jmeter相关文件

1、在maven项目,如果是模块项目的话,可以找一个模块即可,如api模块,在${project.base.directory}/src/test/创建文件夹录jmeter跟resources。(如果只有一个模块,同理)

jmeter文件夹内容存放来源:jmeter安装目录下bin文件下的配置文档+jmeter脚本(需要用来执行的jmeter脚本)

resource目录内容存文档来源:jmeter安装目录下extras文件

resources文件夹需要修改文件类型,在resources文件夹右键-Mark Directory as-test resources Root,如下

修改项目的pom

整个pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>Grit</groupId><artifactId>GritJmeter</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!--此路径用于存储JMeter的原生测试结果文件,比如csv或者jtl--><jmeter.result.jtl.dir>${project.build.directory}\jmeter\results</jmeter.result.jtl.dir><!--此路径用于存储由模板转换过来的详细的测试结果的html文件--><jmeter.result.html.dir>${project.build.directory}\jmeter\html_detail_report</jmeter.result.html.dir><!--此路径用于存储由模板转换过来的测试结果的html文件--><jmeter.result.html.dir1>${project.build.directory}\jmeter\html_report</jmeter.result.html.dir1><ReportName>TestReport</ReportName></properties><dependencies><dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_core</artifactId><version>5.4.3</version></dependency><dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_java</artifactId><version>5.4.3</version></dependency><dependency><groupId>org.apache.jmeter</groupId><artifactId>jorphan</artifactId><version>5.4.3</version></dependency></dependencies><build><plugins><plugin><groupId>com.lazerycode.jmeter</groupId><artifactId>jmeter-maven-plugin</artifactId><version>3.6.0</version><configuration><!--指定jmeter版本号--><jmeterVersion>5.4.3</jmeterVersion><!-- JVM 设置--><jMeterProcessJVMSettings><xms>2048</xms><xmx>2048</xmx></jMeterProcessJVMSettings><!--JMeter能够创建.jtl(XML格式)测试结果和csv测试结果。 默认情况下,此插件使用csv格式。这里需要将其切换为xml格式。--><resultsFileFormat>xml</resultsFileFormat><!--这里是否生成result report需要设置为false,否则运行时会出现“前言中不允许有内容”的报错。因为若该项为true,无论你在.properties配置文件或者此pom文件中将结果文件的格式显示设置为xml,最后都只会生成csv的结果文件。而csv的格式无法转换成我们最后要的html结果文件,就会报上述的错。--><generateReports>true</generateReports><!--忽略失败--><ignoreResultFailures>true</ignoreResultFailures><!--报告文件尾部输出时间戳 --><appendResultsTimestamp>true</appendResultsTimestamp><!--指定日志级别--><overrideRootLogLevel>error</overrideRootLogLevel><!-- 将任何其他 Java 库添加到 JMeter 的 lib/ext 目录--><jmeterExtensions><artifact>kg.apc:jmeter-plugins-standard:1.4.0</artifact><artifact>kg.apc:jmeter-plugins-extras:1.4.0</artifact><artifact>kg.apc:jmeter-plugins-perfmon:2.1</artifact><artifact>kg.apc:jmeter-plugins-manager:1.7</artifact></jmeterExtensions><junitLibraries><!--                        <artifact>com.lazerycode.junit:junit-test:1.0.0</artifact>--></junitLibraries><!-- 指定测试用例的路径--><testFilesDirectory>src\test\jmeter\</testFilesDirectory></configuration><executions><!-- Generate JMeter configuration --><execution><id>configuration</id><goals><goal>configure</goal></goals></execution><!-- Run JMeter tests --><execution><id>jmeter-tests</id><goals><goal>jmeter</goal></goals></execution><!-- Fail build on errors in test --><execution><id>jmeter-check-results</id><goals><goal>results</goal></goals></execution></executions></plugin></plugins></build>
</project>

properties 字段后的所有内容都是本次添加的jmter相关的配置信息,后续可做复制使用。另外,拿到这个配置内容,一般只需要修改以下内容就好

<!-- 指定测试用例的路径-->
                    <testFilesDirectory>src\test\jmeter\</testFilesDirectory>

执行
通过控制台命令执行

mvn clean verify

通过编辑器操作

通过编辑器中的LifeCycle中的操作来执行。

非首次则需要执行clean,再执行verify(首次则直接执行verify即可)

执行时控制台日志:

D:\Software\java\jdk1.8.0_181\bin\java.exe "-Dmaven.multiModuleProjectDirectory=D:\Program Files\GitData\GritJmeter" -Dmaven.home=D:\Software\apache-maven-3.9.1 -Dclassworlds.conf=D:\Software\apache-maven-3.9.1\bin\m2.conf -javaagent:D:\Software\ideaIU-2018.3.6.win\lib\idea_rt.jar=17454:D:\Software\ideaIU-2018.3.6.win\bin -Dfile.encoding=UTF-8 -classpath D:\Software\apache-maven-3.9.1\boot\plexus-classworlds-2.6.0.jar;D:\Software\apache-maven-3.9.1\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2018.3.6 verify
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------------< Grit:GritJmeter >---------------------------
[INFO] Building GritJmeter 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- resources:3.3.0:resources (default-resources) @ GritJmeter ---
[INFO] Copying 0 resource
[INFO] 
[INFO] --- compiler:3.10.1:compile (default-compile) @ GritJmeter ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- jmeter:3.6.0:configure (configuration) @ GritJmeter ---
[INFO]  
[INFO] -------------------------------------------------------
[INFO] C O N F I G U R I N G    J M E T E R
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Creating test configuration for execution ID: configuration
[INFO] Building JMeter directory structure...
[INFO] Generating JSON Test config...
[INFO] Configuring JMeter artifacts...
[INFO] Populating JMeter directory...
[INFO] Copying extensions to D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter\lib\ext 
Downloading dependencies: true
[INFO] Copying junit libraries to D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter\lib\junit 
Downloading dependencies: true
[INFO] Copying test plan libraries to D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter\lib 
Downloading dependencies: true
[INFO] Configuring JMeter properties...
[INFO] 
[INFO] --- resources:3.3.0:testResources (default-testResources) @ GritJmeter ---
[INFO] Copying 6 resources
[INFO] 
[INFO] --- compiler:3.10.1:testCompile (default-testCompile) @ GritJmeter ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- surefire:3.0.0:test (default-test) @ GritJmeter ---
[INFO] 
[INFO] --- jar:3.3.0:jar (default-jar) @ GritJmeter ---
[INFO] Building jar: D:\Program Files\GitData\GritJmeter\target\GritJmeter-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- jmeter:3.6.0:jmeter (jmeter-tests) @ GritJmeter ---
[INFO]  
[INFO] -------------------------------------------------------
[INFO]  P E R F O R M A N C E    T E S T S
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Will generate HTML report in D:\Program Files\GitData\GritJmeter\target\jmeter\reports\cont
[INFO] Executing test: cont.jmx
[INFO] Arguments for forked JMeter JVM: [java, -Xms2048M, -Xmx2048M, -Djava.awt.headless=true, -jar, ApacheJMeter-5.4.3.jar, -d, D:\Program Files\GitData\GritJmeter\target\39016a4e-390a-4b18-8df3-fb914d5aa91f\jmeter, -e, -j, D:\Program Files\GitData\GritJmeter\target\jmeter\logs\cont.jmx.log, -l, D:\Program Files\GitData\GritJmeter\target\jmeter\results\cont-20231017.csv, -n, -o, D:\Program Files\GitData\GritJmeter\target\jmeter\reports\cont, -t, D:\Program Files\GitData\GritJmeter\target\jmeter\testFiles\cont.jmx, -L, ERROR, -Dsun.net.http.allowRestrictedHeaders, true]
[INFO]  
[INFO] SLF4J: Class path contains multiple SLF4J bindings.
[INFO] SLF4J: Found binding in [jar:file:/D:/Program%20Files/GitData/GritJmeter/target/39016a4e-390a-4b18-8df3-fb914d5aa91f/jmeter/lib/log4j-slf4j-impl-2.17.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
[INFO] SLF4J: Found binding in [jar:file:/D:/Program%20Files/GitData/GritJmeter/target/39016a4e-390a-4b18-8df3-fb914d5aa91f/jmeter/lib/slf4j-nop-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
[INFO] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
[INFO] SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
[INFO] Creating summariser <summary>
[INFO] Created the tree successfully using D:\Program Files\GitData\GritJmeter\target\jmeter\testFiles\cont.jmx
[INFO] Starting standalone test @ Tue Oct 17 11:19:57 CST 2023 (1697512797293)
[INFO] Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
[INFO] summary +      1 in 00:00:04 =    0.3/s Avg:  3033 Min:  3033 Max:  3033 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0
[INFO] summary +     13 in 00:00:07 =    1.9/s Avg:   529 Min:     9 Max:  5276 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1
[INFO] summary =     14 in 00:00:10 =    1.3/s Avg:   708 Min:     9 Max:  5276 Err:     0 (0.00%)
[INFO] Tidying up ...    @ Tue Oct 17 11:20:08 CST 2023 (1697512808570)
[INFO] ... end of run
[INFO] Completed Test: D:\Program Files\GitData\GritJmeter\target\jmeter\testFiles\cont.jmx
[INFO]  
[INFO] 
[INFO] --- jmeter:3.6.0:results (jmeter-check-results) @ GritJmeter ---
[INFO]  
[INFO] -------------------------------------------------------
[INFO] S C A N N I N G    F O R    R E S U L T S
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Will scan results using format: CSV
[INFO]  
[INFO] Parsing results file 'D:\Program Files\GitData\GritJmeter\target\jmeter\results\cont-20231017.csv' as type: CSV
[INFO]  
[INFO] -------------------------------------------------------
[INFO] P E R F O R M A N C E    T E S T    R E S U L T S
[INFO] -------------------------------------------------------
[INFO]  
[INFO] Result (.csv) files scanned: 1
[INFO] Successful requests:         16
[INFO] Failed requests:             0
[INFO] Failures:                    0.0% (0.0% accepted)
[INFO]  
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  57.681 s
[INFO] Finished at: 2023-10-17T11:20:12+08:00
[INFO] ------------------------------------------------------------------------
[INFO] Shutdown detected, destroying JMeter process...
[INFO]  Process finished with exit code 0
通过jmeter gui

cd 到maven项目代码目录下,执行命令

mvn jmeter:configure jmeter:gui

会自动打开jmeter界面

控制台日志

查看日志可知执行的时候获取的配置是默认配置execution ID: default-cli,而不是我们在pom中配置execution ID: configuration

Microsoft Windows [版本 10.0.17763.4974]
(c) 2018 Microsoft Corporation。保留所有权利。D:\Program Files\GitData\GritJmeter>mvn jmeter:configure jmeter:gui
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< Grit:GritJmeter >---------------------------
[INFO] Building GritJmeter 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- jmeter:3.6.0:configure (default-cli) @ GritJmeter ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] C O N F I G U R I N G    J M E T E R
[INFO] -------------------------------------------------------
[INFO]
[INFO] Creating test configuration for execution ID: default-cli
[INFO] Building JMeter directory structure...
[INFO] Generating JSON Test config...
[INFO] Configuring JMeter artifacts...
[INFO] Populating JMeter directory...
[INFO] Copying extensions to D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter\lib\ext
Downloading dependencies: true
[INFO] Copying junit libraries to D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter\lib\junit
Downloading dependencies: true
[INFO] Copying test plan libraries to D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter\lib
Downloading dependencies: true
[INFO] Configuring JMeter properties...
[INFO]
[INFO] --- jmeter:3.6.0:gui (default-cli) @ GritJmeter ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  S T A R T I N G    J M E T E R    G U I
[INFO] -------------------------------------------------------
[INFO] Arguments for forked JMeter JVM: [java, -Xms2048M, -Xmx2048M, -jar, ApacheJMeter-5.4.3.jar, -d, D:\Program Files\GitData\GritJmeter\target\caab0619-1b6c-4fcb-b55c-13626e70662f\jmeter, -L, ERROR]
[INFO]

这个方式执行速度比较慢

查看报告

执行完成后会存在一个targer目录

通过Jenkins执行
安装Jenkins插件

HTML Publisher plugin

点击左边available plugins,查询HTML,选中HTML Publisher plugin,安装

同理,安装Performance Plugin、Maven Integration plugin

配置Jenkins运行工具

配置 maven

配置jdk

配置maven

创建可执行job

输入任务名称,选择构建一个maven项目

选择jdk(在配置Jenkins运行工具这一步,当时就已经配置了系统级的jdk,配置多个的话,则可自行选择一个,如果不选择,默认system系统的jdk)

如果是性能测试,则需要增加Publish Performance test result report

点击执行

运行成功

查看报告

问题记录

问题1:

testFilesDirectory 元素值只能是目录,不能是文件,不然会提示找到的不是目录类型而报错

问题2:pom.xml报错提示:Element 'configuration' cannot have character [children], because the type's content type is element

解决办法:发现pom文件内容中少了一个<导致。

配置文件中的beans节点下面只能是元素节点,不能有字符或者文本存在

比如,多余的标点符号,点,也有可能是空格。

问题3:执行结果 ,提示jmeter-maven-plugin版本3.6需要maven 版本3.5.2

解决方案:

问题4:Jenkins上查看报告为空

解决方案:Jenkins首页-点击Manage Jenkins-选择Script console

输入

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

点击运行,再重新构建查看HTML报告。

参考:

Win10系统Jmeter+maven+Jenkins接口自动化环境搭建(一) | 柯南的博客记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/165405.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效恢复丢失的文件的10 款Android数据恢复工具

在当今快节奏的数字时代&#xff0c;从Android设备丢失重要数据可能是一场噩梦。 您需要一个可靠的恢复工具来取回您的数据&#xff0c;例如令人难忘的照片&#xff0c;重要的联系人&#xff0c;重要的工作文档等。 值得庆幸的是&#xff0c;有许多高效的Android数据恢复工具可…

什么是无磁远传水表?工作原理是怎样的?

无磁远传水表是一种新型的智能水表&#xff0c;与传统水表相比&#xff0c;它具有更高的精度和可靠性&#xff0c;并且可以实现远程读数和控制。那么&#xff0c;无磁远传水表的工作原理是怎样的呢?下面&#xff0c;小编来为大家介绍下什么是无磁水表?它的工作原理是怎样的&a…

npm ERR! node-sass@6.0.1 postinstall: `node scripts/build.js`

1.遇到的问题 vue npm install提示以下错误 2.首次尝试方法 尝试用下面的方式重新安装弄得-saas&#xff0c;结果不起作用 。 npm config set sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass npm install node-sass 这时考虑降级node版本&#xff0c;node.js从…

【树莓派触摸屏等学习笔记】

前言 树莓派触摸屏 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、触摸屏硬件驱动 出现黑屏的时候&#xff0c;恢复一下txt config.txt 全屏显示 showFull Exec &#xff1a;自启动 surf 算法 特征点识别 算法的复杂度挺高的 特性树莓派强大…

N-128基于springboot,vue酒店管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatis 本系统功…

怎么恢复移走的u盘数据?可以尝试这三种方法

当意外移走U盘上的数据时&#xff0c;我们常常会感到焦虑和失望&#xff0c;特别是当这些数据对我们仍然重要时。不过&#xff0c;您不必完全放弃&#xff0c;因为本文将介绍一些方法&#xff0c;以帮助您恢复U盘上的重要数据。 图片来源于网络&#xff0c;如有侵权请告知 移走…

uniapp 安装 u-view 组件库

u-view 组件库安装教程&#xff1a;https://uviewui.com/components/install.html 注&#xff1a;以下使用 HBuilderx 安装 u-view 2.0 版本&#xff0c;不适用于其它版本。 1.安装 u-view 组件库 2、注册并登录 HBuilderx 账号&#xff0c;点击下载 u-view 组件库。 3、点击…

2024年仁爱学院专升本招生专业对应范围专业目录更新的通知

天津仁爱学院2024年高职升本科招生专业对应范围专业目录 为了更好的进行天津仁爱学院专升本工作&#xff0c;动画专业不分文理进行录取。为了进一步提升录取专业的培养需要&#xff0c;请同学们复习专业课时加强专业课学习&#xff0c;请同学们在报考时关注天津仁爱学院招生章…

Pytorch从零开始实战06

Pytorch从零开始实战——明星识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——明星识别环境准备数据集模型选择开始训练模型可视化模型预测总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;Pytorch2.0.1c…

线性代数3:矢量方程

一、前言 欢迎回到系列文章的第三篇文章&#xff0c;内容是线性代数的基础知识&#xff0c;线性代数是机器学习背后的基础数学。在我之前的文章中&#xff0c;我介绍了梯队矩阵形式。本文将介绍向量、跨度和线性组合&#xff0c;并将这些新想法与我们已经学到的内容联系起来。本…

vmware 16pro安装 mac10.14.6,期间遇到的问题

1、分配硬盘内存尽量分大点&#xff0c;建议是40g&#xff0c;我分了80g&#xff0c;后面下载解压xcode发现还不够&#xff0c;又增加最后分了120g 2、安装过程&#xff0c;卡在选语言的地方&#xff0c;鼠标和键盘无法操作。需要在虚拟机设置中&#xff0c;勾选以下选项“显示…

SpringBoot 打包与运行

一、SpringBoot 程序打包 1、在Springboot工程 pom文件中&#xff0c;引入 spring-boot-maven-plugin 插件。 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifact…

视频SDK开发,多平台SDK快速接入

随着科技的不断发展&#xff0c;视频已经成为了企业业务中不可或缺的一部分。无论是在线教育、企业培训还是产品展示&#xff0c;视频都发挥着至关重要的作用。为了满足企业对视频应用的需求&#xff0c;美摄视频SDK应运而生&#xff0c;为企业提供了一站式的视频解决方案。 一…

[架构之路-240]:目标系统 - 纵向分层 - 应用层 - 应用层协议与业务应用程序的多样化,与大自然生物的丰富多彩,异曲同工

目录 前言&#xff1a; - 倒金子塔结构 - 大自然的组成 一、应用层在计算机系统中的位置 1.1 计算机应用程序的位置 1.1.1 业务应用程序概述 1.1.2 应用程序的分类 - 按照计算机作用范围 1.1.3 业务应用程序分类 - 按照行业分类 1.2 网络应用协议的位置 1.2.1 网络协…

浏览器的四种缓存协议

❤️浏览器缓存 在HTTP里所谓的缓存本质上只是浏览器和业务侧根据不同的报文字段做出不同的缓存动作而已 四种缓存协议如下 Cache-ControlExpiresETag/If-None-MatchLast-Modified/If-Modified-Since &#x1f3a1;Cache-Control 通过响应头设置Cache-Control和max-age&…

React基础: 项目创建 JSX 基础语法 React基础的组件使用 useState状态 基础样式控制

01 React 文章目录 01 React一、React是什么1、React的优势 二、React开发环境搭建1、创建项目2、运行项目3、项目的目录结构 三、JSX基础1、什么是 JSX代码示例&#xff1a; 2、JSX使用场景2.1代码示例&#xff1a; 3、JSX中实现列表渲染4、JSX - 实现基本的条件渲染5、JSX - …

最新Ai写作创作系统源码+Ai绘画系统源码+搭建部署教程+支持GPT4.0+支持Prompt预设应用+思维导图生成

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

Damask使用指南-Hcp结构(镁(考虑孪晶))孪晶如何加入

1&#xff0c;首先利用geom布种子&#xff0c;种子数为40&#xff0c;模型空间尺寸为64*64*1&#xff08;表示二维平面问题&#xff09;代码&#xff1a; 2&#xff0c;根据布种区域生成voronoi镶嵌的晶体结构 代码&#xff1a; 3 检查结构是否正确生成 4&#xff0c;利用dama…

MySQL 性能分析

MySQL 性能分析 对 mysql 进行性能分析&#xff0c;主要就是提升查询的效率&#xff0c;其中索引占主导地位。对 mysql 进行性能分析主要有如下几种方式&#xff1a; 方式一&#xff1a;查看 sql 执行频次 show global status like ‘Com_______’; // global 表示全局 show s…

模拟器-雷电-使用adb push或adb pull操作文件

一、环境 windows 10 雷电模拟器4.0.83 二、问题 有时候我们会需要往模拟器拷贝文件或者复制文件到我的电脑 三、方法 1、获取root权限 adb root adb remount 有可能遇到【daemon not running; starting now at tcp:5037】的报错 查看端口占用进程&#xff1a;netstat -…