प्रौद्योगिकी साझेदारी

तकनीकी कठिनता: SpringBoot Jmeter विकासं कथं एकीकृत्य इति चिन्तयन्

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

तकनीकी कठिनता: SpringBoot Jmeter विकासं कथं एकीकृत्य इति चिन्तयन्

आवश्यकताओं के अवलोकन

उच्च-प्रदर्शन-तनाव-परीक्षण-मञ्चं निर्मायताम्, यस्य स्वचालित-तनाव-परीक्षणं कर्तुं Spring Boot-रूपरेखायाः माध्यमेन JMeter-इत्यस्य आह्वानस्य आवश्यकता वर्तते ।

समाधानम् १: बाह्यप्रक्रियाः आह्वयितुं Runtime वर्गस्य उपयोगं कुर्वन्तु

तकनीकी अवलोकन

जावा इत्यस्य Runtime वर्गः ऑपरेटिंग् सिस्टम् इत्यनेन सह अन्तरक्रियायै एकं अन्तरफलकं प्रदाति, यत् जावा अनुप्रयोगाः सिस्टम् आदेशान् निष्पादयितुं, बाह्य अनुप्रयोगाः अथवा स्क्रिप्ट् आरभ्य, तेषां सह अन्तरक्रियां कर्तुं च शक्नुवन्ति अस्मिन् परिदृश्ये Runtime वर्गस्य अनुप्रयोगः निम्नलिखितम् अस्ति ।

  1. प्रक्रियाः आरभ्य प्रबन्धनं कुर्वन्तु: तनावपरीक्षणार्थं JMeter आदेशपङ्क्तिसाधनं आरभ्य Runtime वर्गस्य exec() मेथड् इत्यस्य उपयोगं कुर्वन्तु ।
  2. प्रणाली संसाधनानाम् अभिगमनम्: Runtime वर्गस्य विधिभिः, यथा totalMemory() तथा freeMemory() इत्येतयोः माध्यमेन Java वर्चुअल् मशीनस्य स्मृति-उपयोगस्य निरीक्षणं कुर्वन्तु ।
  3. विशिष्टं कर्म कुरुत: अनुप्रयोगं सुरक्षितरूपेण समाप्तुं Runtime वर्गेन प्रदत्तस्य exit() पद्धतेः उपयोगं कुर्वन्तु, तथा च सटीकसमयसूचना प्राप्तुं nanoTime() तथा currentTimeMillis() इत्येतयोः उपयोगं कुर्वन्तु

रनटाइम क्लास

Runtimeक्लास् जावा मध्ये एकः कोर क्लास् अस्ति यः जावा रनटाइम् वातावरणेन सह अन्तरक्रियायाः पद्धतीः प्रदाति

एतत् प्रचालनतन्त्रेण सह अन्तरक्रियायै एकं अन्तरफलकं प्रदाति, जावा-अनुप्रयोगानाम् तन्त्रादेशान् निष्पादयितुं, प्रणालीसंसाधनं प्राप्तुं, विशिष्टानि कार्याणि कर्तुं च सक्षमं करोति ।

मुख्यप्रयोगेषु निम्नलिखितपक्षः अन्तर्भवति ।

  • प्रक्रियाः आरभ्य प्रबन्धनं कुर्वन्तु

    • Runtimeवर्गः केचन पद्धतयः प्रदाति यथाexec(), बाह्यप्रक्रियाणां आरम्भाय प्रबन्धनाय च उपयुज्यते ।

    • एतेन जावा-अनुप्रयोगाः सिस्टम्-आदेशान् निष्पादयितुं, अन्य-अनुप्रयोगान् वा स्क्रिप्ट्-इत्येतत् प्रारम्भं कर्तुं, बाह्य-प्रक्रियाभिः सह अन्तरक्रियां कर्तुं च समर्थाः भवन्ति ।

  • प्रणाली संसाधनानाम् अभिगमनम्

    • Runtimeवर्गः केचन पद्धतयः प्रदाति यथाtotalMemory()तथाfreeMemory(), जावा वर्चुअल् मशीनस्य स्मृतिसूचना प्राप्तुं प्रयुक्तम् ।

    • अपि उपलभ्यतेgetSystemResource()तन्त्रसंसाधनमार्गं प्राप्तुं विधिः, यथा वर्गमार्गः, पुस्तकालयमार्गः इत्यादयः ।

  • विशिष्टं कर्म कुरुत

    • Runtimeवर्गः केचन पद्धतयः अपि प्रदाति, यथाexit(), जावा-अनुप्रयोगानाम् समाप्त्यर्थं प्रयुक्तम् ।

    • अपि उपलभ्यतेnanoTime()विधिः वर्तमान नैनोसेकेण्ड् समयं प्राप्तुं, तथा च उपयोगं करोतिcurrentTimeMillis()वर्तमान मिलीसेकेण्ड् समयं प्राप्तुं विधिः।

JMeter आदेशपङ्क्तितनावपरीक्षणस्य विस्तृतव्याख्यानम्

JMeter bin निर्देशिकां प्रविशन्तु ।

आदेशपङ्क्तिमापदण्डैः सह JMeter आरभत

./jmeter -n -t /Users/xdclass/Desktop/report.jmx -l /Users/xdclass/Desktop/temp/jtl/result.jtl -e -o /Users/xdclass/Desktop/temp/result

निहितः:

  • -n:JMeter इत्येतत् गैर-GUI मोड् मध्ये चालयन्तु ।
  • -t <jmx文件路径>: JMeter परीक्षणस्क्रिप्ट् इत्यस्य मार्गं निर्दिशन्तु ।
  • -l <结果日志路径>: परीक्षणपरिणामवृत्तस्य रक्षणमार्गं निर्दिशन्तु सुनिश्चितं कुर्वन्तु यत् पुटं विद्यते तथा च सञ्चिकानाम पुनरावृत्तिः नास्ति।
  • -e: परीक्षणस्क्रिप्ट् चालनस्य अनन्तरं HTML प्रारूपेण परीक्षणप्रतिवेदनं जनयन्तु ।
  • -o <报告目录路径>: यत्र HTML प्रतिवेदनं संगृहीतं तत्र निर्देशिका निर्दिशन्तु पुटस्य अस्तित्वं सुनिश्चितं कुर्वन्तु ।

कोडिंग अभ्यास

  1. public class JMeterIntegration {
  2. public static void main(String[] args) {
  3. try {
  4. // 构建JMeter命令行调用
  5. String command = "/path/to/jmeter/bin/jmeter -n -t /path/to/test.jmx -l results.log -e -o /path/to/result";
  6. Process process = Runtime.getRuntime().exec(command);
  7. // 读取JMeter输出
  8. new BufferedReader(new InputStreamReader(process.getInputStream())).lines()
  9. .forEach(System.out::println);
  10. // 等待JMeter进程结束并获取退出码
  11. int exitCode = process.waitFor();
  12. System.out.println("JMeter process exited with code: " + exitCode);
  13. } catch (IOException | InterruptedException e) {
  14. e.printStackTrace();
  15. }
  16. }
  17. }

समस्याः

  • पठनीयता, अनुरक्षणं, मापनीयता च दुर्बलता, मञ्चीकरणे कठिनता, विद्यमानज्ञानस्य धारणं च