当前位置:网站首页>[test de performance] lire jmeter
[test de performance] lire jmeter
2022-07-04 07:43:00 【Li Yi'an QSR】
Catalogue des articles
- Un.、Comparaison des outils d'essai de pression couramment utilisés
- 2.、JmeterInstructions d'installation et de catalogue
- Trois、JmeterComposants de base
- Quatre、JmeterVariables personnalisées et paramètres variables
- Cinq、JmeterMesure de la pression de la base de données
- Six、Piézométrie distribuée
- Sept、Comment améliorer la qualité des mesures de pression
- Huit、Détails du rapport d'essai
- Neuf、Résumé des questions pertinentes
Télécharger le lien sur le site officiel:https://jmeter.apache.org/download_jmeter.cgi
Un.、Comparaison des outils d'essai de pression couramment utilisés
- LoadRunner
Performance stable,Résultats des essais de pression et grande taille des particules fines,Vous pouvez personnaliser les scripts pour les tests de pression,Mais trop important,Beaucoup de fonctions. - apache ab
Simuler les requêtes simultanées multithreadées,abLa commande nécessite peu d'ordinateurs chargés,Ça ne prendra pas beaucoupCPU, Pas trop de mémoire non plus ,Mais cela peut entraîner une charge énorme sur le serveur cible,SimpleDDOSAttaques, etc - webbench
webbenchTout d'abord,forkSortie de plusieurs sous - processus,Chaque sous - processus fait l'objet d'un cyclewebTest d'accès.Le Sous - processus passe le résultat de l'accèspipeDites au processus parent,Le processus parent fait les statistiques finales.
2.、JmeterInstructions d'installation et de catalogue
BesoinJDKEnvironnement:8Ci - dessus,JDKInstaller des tutoriels
Téléchargement sur le site officiel,Décompresser
binTable des matières:Fichier exécutable,Contient la configuration
- Jmeter.batDocumentation:windowsFichier de démarrage
- Jmeter:macOulinuxFichier de démarrage
- Jmeter-server:macOulinuxFichiers de démarrage utilisés pour les essais de pression distribués
- jmeter.properties:Profil de base
- shutdown:Fermer le programme
- report-template: Modèle de production du rapport d'agrégation
docsTable des matières:Liste des documents, Conserver la documentation de son utilisation
extrasTable des matières:Répertoire des plug - ins, Faire un catalogue de développement secondaire
libTable des matières:Outils de basejunit Et quelques paquets de base ext
licensesTable des matières:
printable_docsTable des matières:
- Comment ajusterJmeterVersion linguistique de
Options - Choose Language - English/Chinese(Simplify)
Peut également être modifié directementbinSous la table des matières Dejmeter.propertiesDans le profil
# language = en
language=zh
Similaire, Il est également possible de modifier certains thèmes, etc
Trois、JmeterComposants de base
1、Plan d'essai
2、Groupes de threads
Dans le plan d'essaiAdd - threads -> Groupes de threads(Contrôle de la concurrence globale)
Number of Threads:Nombre de fils ,Nombre d'utilisateurs virtuels.Un utilisateur virtuel prend un thread
Ramp-up period(Secondes): Durée de démarrage de tous les processus .100Threads20s,Représentation20sIntérieur100 Les fils démarrent lentement ,Démarrage par seconde5- Oui.
Loop Count:Nombre de cycles.Nombre d'envois par fil.Si elle est réglée à5,100Threads
3、échantillonneur
Groupes de threads - Ajouter - Sampler(échantillonneur) - Http/…
webServeur:Le Protocole par défaut esthttp,Le port par défaut est80, Nom du serveur de destination ou ipAdresse
Chemin:ServeurURL
Use multipart/form-data for HTTP POST:Quand envoyerPOSTSur demande,Utiliseruse multipart/form-dataMéthode d'envoi,Par défaut non vérifié
4、Ajouter un arbre de résultats
Groupes de threads - Ajouter - Moniteur - Afficher l'arborescence des résultats
5、Assertion
Clic droitrequest - add - Assertion - Sélectionnez l'assertion désirée (Assertion de la réponse…)
6、Rapport d'agrégation
Groupes de threads - Ajouter - Moniteur - Rapport d'agrégation
Quatre、JmeterVariables personnalisées et paramètres variables
Plan d'essai - Ajouter - Élément de configuration - Variables définies par l'utilisateur
Vous pouvez ajouter quelques configurations ip Adresse ou autre information
Utilisé lorsque la valeur est prise ${Nom de la variable}
C'est tout.
Variable utilisateur au niveau du plan de test
CSVParamètre variable piézométrie
Description des informations de configuration
Par ici.csvOutxt Tous les fichiers sont ok
S'il y a deux colonnes , Mais un seul paramètre est utilisé , Obtient par défaut la première colonne de données valides
Cinq、JmeterMesure de la pression de la base de données
1、Ajouter un groupe de thread
2、CréationJDBCDemande
3、Ajouter un élément de configuration à cette demande
Configurer les informations pertinentes de la base de données, etc
Il faut d'abord4PasjarAjouter global, Pour remplir toutes les informations
4、Ajouter une connexion globale à la base de donnéesjar
5、Écrire spécifiéJDBC Déclarations
Ajouter un arbre de résultats pour voir les résultats d'exécution
JDBCDescription de certains paramètres dans la requête
Max Number of connections:Nombre maximum de connexions
MAX wait:Temps d'attente maximum
Auto Commit:Soumettre automatiquement les transactions
Note::Ici.sql Ne pas écrire ;
Fin
Variable names:sql Nom de la variable qui exécute le résultat
Result variable name: Remplissez une variable ici , Tous les résultats de la requête peuvent être encapsulés dans cet objet
Groupes de threads - Ajouter - Debug Sampler
Après l'exécution, vous pouvez voir Debug Informations sur les résultats affichées dans l'échantillonneur
Handle ResultSet:Traitement de l'ensemble de résultats
Six、Piézométrie distribuée
Pourquoi faire des tests de pression distribués
Mesure normale de la pression: Une seule machine produit moins de pression sur la machine cible ,Les contraintes comprennent:CPU、Réseau etIOAttendez.
Piézométrie distribuée:Utilisez plusieurs machines pour créer une pression sur la machine cible,Simuler l'accès simultané de dizaines de milliers d'utilisateurs
Comment effectuer une mesure de pression distribuée
Description du principe simple
- Le noeud de la machine pour la commande principale est appelé master,D'autres machines qui produisent de la pression s'appellent“Poulets de chair” server
- masterEnvoie le script de test de pression àserverLà - haut
- Il suffit deJmeterDeJmeter-serverOuvrez - le et,Pas besoin de démarrerJmeter
- Après ça,serverRenvoie les données piézométriques àmaster,Et puismasterRapport sommaire des extrants
- Détails de configuration
JmeterMode de démarrage en ligne de commande,Détails des paramètres
Tutoriel officiel:https://jmeter.apache.org/usermanual/index.html#get-started
-h Aide
-n NonGUIMode
-t Spécifier leJmeterFichier de script de test
-l Documentation des résultats,Avant chaque course(Pour s'assurer qu'il n'a pas été exécuté auparavant,C'est - à - dire:xxxx.jtlN'existe pas,Sinon, c'est une erreur.)
-r Jmeter.propertiesTous les serveurs distants spécifiés dans le fichier
-e Construire après l'exécution du scripthtmlRapport
-o Pour le stockagehtmlTable des matières du rapport( Catalogue de peur ,Sinon, c'est une erreur.)
jmeter -n -t linux_user_api.jmx result.jtl -e -o /usr/local/software/jmeter/temp/ResultReport
jmeter -n -t linux_user_api.jmx -l result.jtl -e -o /usr/local/software/jmeter/temp/ResultReport
Essais de compression distribués sur le terrain
JmeterPréparation des essais de pression distribués
Précautions pour les essais de pression:
the firewalls on the systems are turned off or correct ports are opened.
Le pare - feu du système est éteint ou le bon port est ouvert.
all the clients are on the same subnet.
Tous les clients sont sur le même sous - réseau.
the server is in the same subnet, if 192.x.x.x or 10.x.x.x IP addresses are used. If the server doesn’t use 192.xx or 10.xx IP address, there shouldn’t be any problems.
Si vous utilisez192.x.x.xOu10.x.x.x IPAdresse,Le serveur est sur le même sous - réseau. Si le serveur n'utilise pas192.xxOu10.xx IPAdresse,Il ne devrait pas y avoir de problème..
Make sure JMeter can access the server.
Assurez - vous queJMeterAccès au serveur.
Make sure you use the same version of JMeter and Java on all the systems. Mixing versions will not work correctly.
Assurez - vous d'utiliser la même version deJMeterEtJava. La version hybride ne fonctionnera pas correctement.
You have setup SSL for RMI or disabled it.
Vous avez étéRMIParamètresSSLOu désactiver.
Adresse du site officiel http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html
- Précautions pour les essais de pression:Assurez - vous d'utiliser l'intranetIP,Pas besoin d'utiliser le réseau publicIP,AvecpingVa vérifier.
master:Commandant.
slave:Esclaves
target:Objectifs
Adresse:http://jmeter.apache.org/images/screenshots/distributed-names.svg
Adresse:http://jmeter.apache.org/images/screenshots/distributed-jmeter.svg
- Copie à distance(Adresse Intranet)
scp -r /usr/local/software/jdk-8u141-linux-x64.tar.gz [email protected]:/usr/local/software
scp -r /usr/local/software/jmeter/apache-jmeter-4.0.tgz [email protected]:/usr/local/software/jmeter
Démarrage
./jmeter-server Ou nohup ./jmeter-server &
- Vérifier le démarrage réussi
ps -ef|grep jmeter-server
ps aux|grep jmeter-server
- AttentionCPUEt utilisation de la mémoire
Local nonGUIPiézométrie distribuée -r
jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result
Résultats des essais de pression
./jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result
Creating summariser <summary>
Created the tree successfully using /Users/jack/Desktop/remote.jmx
Configuring remote engine: 172.20.10.3:8899
Using local port: 8899
Configuring remote engine: 172.20.10.11:8899
Starting remote engines
Starting the test @ Thu Mar 29 23:21:13 CST 2018 (1522336873931)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary = 4 in 00:00:22 = 0.2/s Avg: 5582 Min: 94 Max: 21006 Err: 1 (25.00%)
Tidying up remote @ Thu Mar 29 23:21:36 CST 2018 (1522336896842)
... end of run
- Modification des mesures de pressionmasterInformations sur les noeuds
jemeter.properties La valeur estslaveMachineip+Numéro de port,S'il y a plus d'un,Séparer par des virgules
remote_hosts=192.168.0.102:8899,192.168.0.101:8899
server.rmi.ssl.disable=true (Il y a quelque chose à dire)
- DémarrageslaveMachines,Attention au même segment,ipAdresse Intranetip
./jmeter-server
Using local port: 8899
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.0.102:8899](local),objID:[3a585a4d:162724586ab:-7fff, 3963132813614033916]]]
Informations pertinentes:
https://www.cnblogs.com/Fine-Chan/p/6233823.html
https://blog.csdn.net/liujingqiu/article/details/52635289
https://www.cnblogs.com/puresoul/p/4844539.html
Sept、Comment améliorer la qualité des mesures de pression
Utiliser nonGUIMode:jmeter -n -t test.jmx -l result.jtl
Réduction de l'utilisationListener,Si vous utilisez-l Paramètres, Ils peuvent tous être supprimés ou désactivés
Ne pas utiliser pendant les essais de chargement“Afficher l'arborescence des résultats”Ou“Voir les résultats”Moniteur de table, Ils ne peuvent être utilisés que pendant la phase de script pour déboguer
Inclure le Contrôleur n'aide pas ici, Parce qu'ils ajoutent tous les éléments de test du fichier au plan de test
N'utilisez pas le mode de fonction,UtilisercsvProduit au lieu dexml
Enregistrer uniquement les données dont vous avez besoin, Réduire au minimum l'utilisation des assertions
Si l'essai nécessite beaucoup de données, Les données d'essai peuvent être sauvegardées à l'avance dans un fichier de données ,Parcsv·ReadComment lire
Mesure de la pression à l'aide de l'Intranet, La réduction d'autres largeurs de bande affecte l'effet de mesure de la pression
Si la pression est élevée, Utilisez autant de noeuds que possible pour ne pas GUI Mode pressurisation vers le serveur
Recommandation officielle:https://jmeter.apache.org/usermanual/best-practices.html#lean_mean
Huit、Détails du rapport d'essai
Voir d'autresjtlDocumentation
Utiliser le logiciel d'alicloudCentosLe serveur télécharge le rapport de mesure de pression,ExplicationJtlDocumentation,Et comment voir les fichiers
Peut être ouvert enjmeter,Nouveau Groupe de thread->summary report->Parcourir les fichiers Pour voir
Introduction:Prends ça.JmtereLes résultats des mesures de pression sont convertis enHtml
Directives
jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l
/usr/local/software/jmeter/temp/jtl/result.jtl -e -o
/usr/local/software/jmeter/temp/result
JmeterGraphismeHTMLRapport d'essai de pressiondashboard
Rapport d'essai de pression htmlÀ l'intérieurDashboardIndicateurs de base
1)Test and Report informations
Source file:jtlNom du fichier
Start Time :Heure de début de la mesure de pression
End Time :Fin de l'essai de pression
Filter for display:Filtre
Lable:samplerNom de l'échantillonneur
2)APDEX(Application performance Index)
apdex:Mesure du rendement de l'application,Champ d'application0~1Entre,1Indique que tous les utilisateurs sont satisfaits
T(Toleration threshold):Seuil acceptable
F(Frustration threshold):Seuil de défaillance
3)Requests Summary
OK:Taux de réussite
KO:Taux d'échec
4)Statistics Statistiques
lable:samplerNom de l'échantillonneur
samples:Nombre total de demandes,Nombre de concurrents*Nombre de cycles
KO:Nombre d'échecs
Error%:Taux d'échec
Average:Temps de réponse moyen
Min:Temps de réponse minimal
Max:Temps de réponse maximal
90th pct: 90%Le temps de réponse de l'utilisateur pour ne pas dépasser cette valeur(Concentrez - vous sur ça)
2ms,3ms,4,5,2,6,8,3,9
95th pct: 95%Le temps de réponse de l'utilisateur pour ne pas dépasser cette valeur
99th pct: 99%Le temps de réponse de l'utilisateur pour ne pas dépasser cette valeur (Il y a des valeurs extrêmes)
throughtput:Request per SecondDébit qps
received:Quantité de données reçues du serveur par seconde
send:La quantité de données envoyées par seconde
JmeterGraphismeHTMLRapport d'essai de pressionChartsDéclaration
1、Over Time(Changements dans le temps)
Response Times Over Time:Évolution du temps de réponse
Response Time Percentiles Over Time (successful responses):Max.,Minimum,Moyenne,Avec Répartition du temps de réponse des ménages
Active Threads Over Time:Tendance du nombre d'utilisateurs simultanés
Bytes Throughput Over Time:Octets reçus et demandés par seconde,Le bleu signifie envoyer,Jaune pour acceptation
Latencies Over Time:Tendance moyenne du délai de réponse
Connect Time Over Time :Tendance du temps de connexion
2、Throughput
Hits Per Second (excluding embedded resources):Clics par seconde
Codes Per Second (excluding embedded resources):Nombre de codes d'état par seconde
Transactions Per Second:C'est - à - dire:TPS,Transactions par seconde
Response Time Vs Request:Temps de réponse par rapport au nombre de demandes
Latency Vs Request:Délai par rapport au nombre de demandes
3、Response Times
Response Time Percentiles:Pourcentage de temps de réponse
Response Time Overview:Aperçu du temps de réponse
Time Vs Threads:Nombre de fils actifs et temps de réponse
Response Time Distribution:Répartition du temps de réponse
Neuf、Résumé des questions pertinentes
Élément de configuration=》Préprocesseur=》Minuterie=》échantillonneur=》Post - processeur=》Assertion=》Moniteur
Questions:
[[email protected] bin]# ./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[:39308](local),objID:[24e78a63:16243c70661:-7fff, 7492480871343944173]]]
Server failed to start: java.rmi.RemoteException: Cannot start. Unable to get local host IP address.; nested exception is:
java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known
An error occurred: Cannot start. Unable to get local host IP address.; nested exception is:
java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known
Résolution:
hostname Commande pour obtenir le nom de la machine,Ajouter une carte iZwz95j86y235aroi85ht0Z
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
120.79.160.143 iZwz95j86y235aroi85ht0Z
windowsUtilisateurs Modifierc:\windows\system32\drivers\etc\hostsDocumentation,Ajouter un nom de domaine AvecIPCartographie de
Questions
[[email protected] bin]# ./jmeter-server
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
Résolution:
PropriétéRMI over SSLKeystore valide pour,Ou désactivéSSL.
1、DésactiverSSL
jmeter.propertyÀ l'intérieur server.rmi.ssl.disable Lire comme suit: true,Indique désactivé
Questions:
[[email protected] bin]# ./jmeter
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/jmeter/apache-jmeter-4.0/bin/hs_err_pid5855.log
Résolution:
Éditionjmeter
Recherche : "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
Modifier la mémoire tas initiale et la mémoire tas maximale
- Modifier seulement server_port C'est tout.,Les deux sont les mêmes
server.rmi.localport=8899 Représentationslave serverDémarrer le port affiché
server_port=8899 ReprésentationmasterPort auquel la machine doit être connectée à distance C'est - à - dire: remote_hosts=xxxx:8899
Nous allons l'activer sur un serveur Multi - cartesRMILe service doit préciserIP,Pour qu'ils puissent être dans le même segment.
Les étapes suivantes sont nécessaires:(Supposons que toutes les machines soient10.120.11.*Segment réseau,agentLe serveur estlinux,controllerLe serveur estwindows):
1、 ModifieragentServeur,DésignationagentMachineIP
Modifierjmeter-serverDocumentation
# vi jmeter-server
ModifierRMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(Connexion requiseIP)
2、ModifierserverServeur,DésignationserverMachineIP
Modifierjmeter.batDocumentation
Nouveauset rmi_host=-Djava.rmi.server.hostname=10.120.11.214
Modifierset ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
C'est sûr.controllerInstallation sur la machinejdk,Version etjmeterD'accord.,Configurer les variables d'environnement:Java_homeAttendez.
InAgentInstallation sur la machinejdk,Configurer les variables d'environnement:Java_homeEtJMeter_home Le répertoire d'installation ne doit pas avoir d'espaces,Il est préférable d'avoir de courts chemins en anglais
masterCopie après le démarrage de la machinejmxFichier àslaveMachines
Il n'y a pas besoin d'être sur chaqueslaveUne copie est également téléchargée sur la machinejmx,Il suffit demasterTélécharger une copie sur la machinejmxLe script va. Si vous utilisezcsvParamétrage,Les paramètres doivent être documentés dans chaqueslaveCopier une copie et le chemin doit être le même. Nombre total d'échantillons = Nombre de fils * Nombre de cycles * Nombre total d'actionneurs
Dépannage de la raison de l'échec de la connexion
Effectuer le dépannage comme suit::
1. jmeter-serverDémarrer ou non;
2. Si le réseau
3. ping ServeurIPSi elle est libre.
4. telnet Port 192.168.3.10 1099
5. Vérifier si le pare - feu du serveur est éteint.
6. Si la politique de sécurité d'Alibaba Cloud est normale
“could not find ApacheJmeter_core.jar”
Résolution:InAgentInstallation de la machinejdk,Et définir les variables d'environnement
”Bad call to remote host"
Résolution:Vérifier lejmeter-serverÇa a commencé?,Ouremote_hostsEst correctement configuré.
边栏推荐
- How to reset IntelliSense in vs Code- How to reset intellisense in VS Code?
- 弈柯莱生物冲刺科创板:年营收3.3亿 弘晖基金与淡马锡是股东
- Blog stop statement
- 神经网络入门(下)
- 【性能测试】一文读懂Jmeter
- Rhcsa the next day
- 真空介电常数和真空磁导率究竟是由什么决定的?为何会存在这两个物理量?
- What determines vacuum permittivity and vacuum permeability? Why do these two physical quantities exist?
- window上用.bat文件启动项目
- Common components of flask
猜你喜欢
PCIe knowledge points -010: where to get PCIe hot plug data
Rhcsa day 3
Zephyr 学习笔记2,Scheduling
Technical experts from large factories: common thinking models in architecture design
Zephyr learning notes 1, threads
It's healthy to drink medicinal wine like this. Are you drinking it right
The frost peel off the purple dragon scale, and the xiariba people will talk about database SQL optimization and the principle of indexing (primary / secondary / clustered / non clustered)
I was pressed for the draft, so let's talk about how long links can be as efficient as short links in the development of mobile terminals
Practice (9-12 Lectures)
zabbix 5.0监控客户端
随机推荐
论文学习——基于极值点特征的时间序列相似性查询方法
Easy to understand: understand the time series database incluxdb
tornado项目之路由装饰器
OKR vs. KPI 一次搞清楚这两大概念!
BUUCTF(3)
Oracle stored procedures and functions
Technical experts from large factories: common thinking models in architecture design
PCIE知识点-010:PCIE 热插拔资料从哪获取
果果带你写链表,小学生看了都说好
Unity 从Inspector界面打开资源管理器选择并记录文件路径
墨者学院-phpMyAdmin后台文件包含分析溯源
Unity opens the explorer from the inspector interface, selects and records the file path
Rhcsa day 3
MYCAT middleware installation and use
Blue Bridge Cup Quick sort (code completion)
Life planning (flag)
Text processing function sorting in mysql, quick search of collection
[network security] what is emergency response? What indicators should you pay attention to in emergency response?
墨者学院-Webmin未经身份验证的远程代码执行
A real penetration test