كيف يمكنني التشديد على اختبار تحميل ملف نموذج الويب؟
-
04-07-2019 - |
سؤال
أحتاج إلى اختبار نموذج ويب يتطلب تحميل ملف.سيكون حجم الملف في كل عملية تحميل حوالي 10 ميغابايت.أرغب في اختبار ما إذا كان يمكن للخادم التعامل مع أكثر من 100 تحميل في وقت واحد ، ولا يزال مستجيبًا لبقية الموقع.
ستكون عمليات إرسال النماذج المتكررة من مكتبنا محدودة بخط DSL المحلي الخاص بنا.الخادم خارج الموقع مع عرض نطاق ترددي أعلى.
ستكون الإجابات المبنية على الخبرة رائعة، ولكن نرحب بأي اقتراحات.
المحلول
ab -n 100 -c 4 -p test.jpg http://localhost/
ووتنتج انتاج مثل هذا:
Server Software:
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 0 bytes
Concurrency Level: 4
Time taken for tests: 0.78125 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 2600 bytes
HTML transferred: 0 bytes
Requests per second: 1280.00 [#/sec] (mean)
Time per request: 3.125 [ms] (mean)
Time per request: 0.781 [ms] (mean, across all concurrent requests)
Transfer rate: 25.60 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.6 0 15
Processing: 0 2 5.5 0 15
Waiting: 0 1 4.8 0 15
Total: 0 2 6.0 0 15
Percentage of the requests served within a certain time (ms)
50% 0
66% 0
75% 0
80% 0
90% 15
95% 15
98% 15
99% 15
100% 15 (longest request)
نصائح أخرى
السيلينيوم RC استخدام اللغة المفضلة لديك. بدء 100 المواضيع من السيلينيوم، كل كتابة مسار الملف في المدخلات والنقر على إرسال.
هل يمكن أن تولد 100 الملفات بالتسلسل اسمه لجعل حلقات عليهم easyily، أو مجرد استخدام نفس الملف مرارا وتكرارا
ربما أود أن أرشدك نحو استخدام cURL وإرسال أشياء عشوائية فقط (مثل قراءة 10 ميغابايت من أصل 10 ميغابايت). /dev/urandom
وترميزه في base32)، من خلال طلب POST وتصنيع النص يدويًا ليتم تحميل ملف (إنه ليس علم الصواريخ).
قم بتقسيم هذا البرنامج النصي 100 مرة، ربما عبر عدد قليل من الخوادم.فقط تأكد من أن مسؤولي النظام لا يعتقدون أنك تقوم بهجمات DDoS، أو شيء من هذا القبيل :)
لسوء الحظ، تظل هذه الإجابة غامضة بعض الشيء، ولكن نأمل أن تساعدك من خلال دفعك إلى المسار الصحيح.
تابع وفقًا لتعليق ليام:
إذا لم يكن الخادم الذي يستقبل التحميلات موجودًا في نفس الشبكة المحلية مثل العملاء المتصلين به، فسيكون من الأفضل الحصول على أكبر عدد ممكن من العقد البعيدة لاختبار التحمل، وذلك فقط لمحاكاة السلوك الحقيقي قدر الإمكان.ولكن إذا لم يكن لديك إمكانية الوصول إلى أجهزة الكمبيوتر خارج الشبكة المحلية المحلية، فإن الشبكة المحلية المحلية تكون دائمًا أفضل من لا شيء.
اختبار التحمل من داخل نفس الجهاز لن يكون فكرة جيدة، حيث أنك ستفعل تحميلًا مزدوجًا على الخادم:اكتشاف البيانات العشوائية، وتعبئتها، وإرسالها عبر مكدس TCP/IP (على الرغم من أنه ليس عبر Ethernet على الأرجح)، و حينها فقط يمكن للخادم أن يفعل سحره.إذا تم الاستعانة بمصادر خارجية للجزء المرسل، فستحصل على أداء مضاعف (مأخوذ مع حبة ملح عشوائية الحجم) من قبل الطرف المتلقي.