Aller au contenu
tests-performanceRechercherCtrl K
Performance Center1 min de lecture

Tester les performances de Quality Center avec Performance Center

Tester les performances de Quality Center (ALM QC) avec Performance Center quand les ralentissements apparaissent vers 400 ou 500 utilisateurs, et les limites de la solution proposée par HP.

L’essentiel

  • Avec 400 à 500 utilisateurs, des ralentissements peuvent justifier un passage en cluster de serveurs ALM QC.
  • HP a volontairement bloqué l'enregistrement de QC par VuGen.
  • La solution intégrée à une offre HP exige une nouvelle plateforme QC : on ne teste pas avec ses propres données.

Tester Quality Center peut s’avérer nécessaire dès lors que le nombre d’utilisateurs arrive à 400 ou 500 utilisateurs et que l’on constate des ralentissements. On décide donc d’explorer une autre solution qui consiste à passer en mode cluster de serveurs ALM QC.

HP a volontairement bloqué l’accès de Vugen pour enregistrer QC.

Il existe néanmoins une solution intégrée dans une offre que propose HP mais qui nécessite l’installation d’une nouvelle plate-forme QC avec les données et le script Vugen de HP (donc on ne teste pas avec ses propres données). La solution HP va permettre de vérifier un fonctionnement correcte dans le SI du Client mais sans les données clientes.

1 – Afin de réaliser un Test sur ses propres données, il est nécessaire de désactiver la sécurité d’ALM QC (Via fichier de configuration de JBoss) :

disablingSecurity.png

2 – Enregistrer QC avec jmeter :

L’enregistrement de QC avec Jmeter permet de récupérer le BodyData des appels TDAPI_GeneralWebTreatment et de construire nos appels dans Vugen.

jmeterQC.png

3 – Créer un script Vugen Http/Html et créer des web_custom_request avec le BodyBinary issu du BodyData de jmeter. Le script est « viable » si l’ID de session QC est généré par QC. La sécurité doit-être désactivé car la valeur X-TD-ID ne peut pas être géré dynamiquement.

Note de la migration : dans le script d'origine, le nom du serveur, l'identifiant, le mot de passe chiffré, le nom du poste et les identifiants de session ont été remplacés par des valeurs fictives. Les longueurs codées (\x5C…) ne correspondent donc plus : le script montre la structure, pas des valeurs réelles.

C
QCProd()
{
web_set_max_html_param_len("100000");
// Get Server Settings
web_add_header("X-TD-ID", "IDENTIFIANT_DE_SESSION");
web_custom_request("TDAPI_GeneralWebTreatment",
"URL=http://alm.exemple.test:8080/qcbin/servlet/tdservlet/TDAPI_GeneralWebTreatment",
"Method=POST",
"RecContentType=text/html",
"Snapshot=t4.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"BodyBinary="
"{\r\n"
"0: \\x5C0000001C\\x5C0:conststr:GetServerSettings,\r\n"
"1: \\x5C0000002F\\x5C0:conststr:93292400-BB13-4B36-8337-B99CDF8FBD75,\r\n"
"2: \"0:int:1\",\r\n"
"3: \"0:int:-1\",\r\n"
"4: \"0:conststr:\",\r\n"
"5: \"0:int:-1\",\r\n"
"6: \\x5C0000008B\\x5C0:conststr:{\r\n"
"SERVER:\\x5C0000004d\\x5Chttp://alm.exemple.test:8080/qcbin/wcomsrv.dll,\r\n"
"client_machine:POSTE01\r\n"
"}\r\n"
",\r\n"
"7: \"65536:str:0\"\r\n"
"}\r\n",
LAST);
web_reg_save_param_ex(
"ParamName=QC_Session_ID",
"LB/IC=LOGIN_SESSION_ID:",
"RB/IC=,\r\n",
"Ordinal=1",
SEARCH_FILTERS,
"Scope=Body",
LAST);
// Login
web_add_header("X-TD-ID", "IDENTIFIANT_DE_SESSION");
web_custom_request("TDAPI_GeneralWebTreatment",
"URL=http://alm.exemple.test:8080/qcbin/servlet/tdservlet/TDAPI_GeneralWebTreatment",
"Method=POST",
"RecContentType=text/html",
"Snapshot=t4.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"BodyBinary="
"{\r\n"
"0: \"0:conststr:Login\",\r\n"
"1: \\x5C0000002F\\x5C0:conststr:947702AA-042F-4680-9FE2-368915AC8704,\r\n"
"2: \"0:int:2\",\r\n"
"3: \"0:int:-1\",\r\n"
"4: \"0:conststr:\",\r\n"
"5: \"0:int:-1\",\r\n"
"6: \\x5C000000EE\\x5C0:conststr:{\r\n"
"USER_NAME:utilisateur,\r\n"
"PASSWORD:\\x5C0000002a\\x5CMOT_DE_PASSE_CHIFFRE,\r\n"
"CLIENTTYPE:\\x5C0000002a\\x5CApplication Lifecycle Management Client UI,\r\n"
"RETRIEVE_ADDITIONAL_INFO:,\r\n"
"OTA_VERSION:11.52,\r\n"
"OTA_BUILD_NUMBER:514\r\n"
"}\r\n"
",\r\n"
"7: \\x5C00000013\\x5C0:conststr:POSTE01,\r\n"
"8: \"65536:str:0\",\r\n"
"9: \"0:pint:0\",\r\n"
"10: \"65536:str:0\",\r\n"
"11: \"0:pint:0\",\r\n"
"12: \"0:pint:0\"\r\n"
"}\r\n",
LAST);
// Ping to server
web_add_header("X-TD-ID", "IDENTIFIANT_DE_SESSION");
web_custom_request("TDAPI_GeneralWebTreatment_2",
"URL=http://alm.exemple.test:8080/qcbin/servlet/tdservlet/TDAPI_GeneralWebTreatment",
"Method=POST",
"RecContentType=text/html",
"Snapshot=t5.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"BodyBinary={\r\n"
"0: \\x5C00000017\\x5C0:conststr:PingToServer,\r\n"
"1: \\x5C0000002F\\x5C0:conststr:4F0073D8-55DC-4420-B1C6-E03A8FDEEFCB,\r\n"
"2: \"0:int:0\",\r\n"
"3: \"0:int:7590162\",\r\n"
"4: \\x5C00000023\\x5C0:conststr:{QC_Session_ID},\r\n"
"5: \"0:int:-1\",\r\n"
"6: \"0:int:0\",\r\n"
"7: \"65536:str:0\"\r\n"
"}\r\n",
LAST);
// Connect Projet
web_add_header("X-TD-ID", "IDENTIFIANT_DE_SESSION");
web_custom_request("TDAPI_GeneralWebTreatment_3",
"URL=http://alm.exemple.test:8080/qcbin/servlet/tdservlet/TDAPI_GeneralWebTreatment",
"Method=POST",
"RecContentType=text/html",
"Snapshot=t6.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"BodyBinary="
"{\r\n"
"0: \\x5C00000019\\x5C0:conststr:ConnectProject,\r\n"
"1: \\x5C0000002F\\x5C0:conststr:C303542A-80B7-4FC3-95A1-28D56A68D5CE,\r\n"
"2: \"0:int:3\",\r\n"
"3: \"0:int:7590162\",\r\n"
"4: \\x5C00000023\\x5C0:conststr:{QC_Session_ID},\r\n"
"5: \"0:int:-1\",\r\n"
"6: \\x5C00000037\\x5C0:conststr:{\r\n"
"DOMAIN_NAME:DOMAINE,\r\n"
"PROJECT_NAME:PROJET\r\n"
"}\r\n"
",\r\n"
"7: \"65536:str:0\",\r\n"
"8: \"0:pint:0\"\r\n"
"}\r\n"
LAST);
// Disconnect Project
web_add_header("X-TD-ID", "IDENTIFIANT_DE_SESSION");
web_custom_request("TDAPI_GeneralWebTreatment_3",
"URL=http://alm.exemple.test:8080/qcbin/servlet/tdservlet/TDAPI_GeneralWebTreatment",
"Method=POST",
"RecContentType=text/html",
"Snapshot=t6.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"BodyBinary="
"{\r\n"
"0: \\x5C0000001C\\x5C0:conststr:DisconnectProject,\r\n"
"1: \\x5C0000002F\\x5C0:conststr:BA43AF06-E1D0-4D40-AC03-CF976048C561,\r\n"
"2: \"0:int:31\",\r\n"
"3: \"0:int:7590162\",\r\n"
"4: \\x5C00000023\0:conststr:{QC_Session_ID},\r\n"
"5: \"0:int:221385\"\r\n"
"}\r\n"
LAST);
// Logout
web_add_header("X-TD-ID", "IDENTIFIANT_DE_SESSION");
web_custom_request("TDAPI_GeneralWebTreatment_3",
"URL=http://alm.exemple.test:8080/qcbin/servlet/tdservlet/TDAPI_GeneralWebTreatment",
"Method=POST",
"RecContentType=text/html",
"Snapshot=t6.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"BodyBinary="
"{\r\n"
"0: \\x5C00000011\\x5C0:conststr:Logout,\r\n"
"1: \\x5C0000002F\\x5C0:conststr:83B23ACA-96CB-482F-997F-E4E4C27BEC17,\r\n"
"2: \"0:int:32\",\r\n"
"3: \"0:int:7590162\",\r\n"
"4: \\x5C00000023\0:conststr:{QC_Session_ID},\r\n"
"5: \"0:int:-1\"\r\n"
"}\r\n"
LAST);
return 0;
}

Dans la même catégorie.

↑ ↓ choisirEntrée ouvrirÉchap fermer