اختبار التشغيل الآلي باستخدام الملفات الدفعية:

StackOverflow https://stackoverflow.com/questions/132857

  •  02-07-2019
  •  | 
  •  

سؤال

لدي التالية تخطيط بلدي اختبار جناح:

TestSuite1.cmd:

  1. تشغيل البرنامج
  2. تحقق نتيجة عودة
  3. إذا كانت نتيجة عودة لا 0, تحويل الخطأ النصي الإخراج و إحباط البرنامج النصي.إذا نجحت ، كتابة النجاح.

في واحد .الملف cmd, أدعو لي البرنامج حوالي 10 مرات مع الإدخال المختلفة.

المشكلة هي أن برنامج تشغيل 10 مرات تستغرق عدة ساعات تشغيل في كل مرة.

هل هناك طريقة بالنسبة لي أن يوازي كل هذه 10 رننج من البرنامج في حين لا يزال بطريقة أو بأخرى التحقق من نتيجة عودة وتوفير السليم الملف الناتج و في حين لا تزال تستخدم واحد .cmd الملف إلى ملف الإخراج?

هل كانت مفيدة؟

المحلول

على افتراض أنها لن تتداخل مع بعضها البعض عن طريق الكتابة إلى الملفات نفسها ، وما إلى ذلك:

test1.cmd

:: intercept sub-calls.
  if "%1"=="test2" then goto :test2

:: start sub-calls.
  start test1.cmd test2 1
  start test1.cmd test2 2
  start test1.cmd test2 3

:: wait for sub-calls to complete.
:loop1
  if not exist test2_1.flg goto :loop1
:loop2
  if not exist test2_2.flg goto :loop2
:loop3
  if not exist test2_3.flg goto :loop3

:: output results sequentially
  type test2_1.out >test1.out
    del /s test2_1.out
    del /s test2_1.flg
  type test2_2.out >test1.out
    del /s test2_2.out
    del /s test2_2.flg
  type test2_3.out >test1.out
    del /s test2_3.out
    del /s test2_3.flg

  goto :eof
:test2

:: Generate one output file
  echo %1 >test2_%1.out
  ping -n 31 127.0.0.1 >nul: 2>nul:

:: generate flag file to indicate finished
  echo x >test2_%1.flg

هذا وسوف تبدأ ثلاثة العمليات المتزامنة كل الذي يردد انه رقم التسلسل ثم انتظر 30 ثانية.

مع كل واحد cmd الملف (في نهاية المطاف) واحد ملف الإخراج.

نصائح أخرى

يدير الأمور في الموازية في الملفات الدفعية يمكن أن يتم عن طريق 'ابدأ' قابل للتنفيذ/القيادة.

ويندوز:

يمكنك إنشاء ملف دفعي أساسا المكالمات:

start TestSuite1.cmd [TestParams1]
start TestSuite1.cmd [TestParams2]

إلى آخره الذي هو في الأساس التفرع جديدة أسطر الأوامر ،

التي من شأنها أن العمل إذا كان التطبيق يمكن التعامل مع المستخدمين المتزامنين (حتى لو كان نفس المستخدم) ، TestSuite1.cmd هو قادرة على التعامل مع المعلمات.

سوف تحتاج إلى بدء تشغيل البرنامج النصي مع معلمات مختلفة على آلات مختلفة لأن ما يجعل البرنامج يستغرق وقتا طويلا مهمة (IO, وقت وحدة المعالجة المركزية) سيكون في أقصر العرض عندما مثيلات متعددة من البرنامج الخاص بك تشغيل في وقت واحد.

الاستثناء الوحيد:وقت التشغيل هو السبب من خلال البرنامج وضع نفسها على النوم.

حاول تنفيذ الأمر تبدأ, ، فإنه يولد موجه أوامر جديد و يمكنك أن ترسل على أي أوامر كنت تريد تشغيله.

كنت استخدم هذا تفرخ الملفات الدفعية التي تعمل الاختبارات ثم يلحق به إلى output.txt باستخدام >> على هذا النحو:

testthingie.cmd >> output.txt
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top