2009-02-09 18 views
17

मुझे एक परीक्षण परिदृश्य के लिए एक बल्ले स्क्रिप्ट लिखनी है जहां हम परीक्षण कर रहे सॉफ़्टवेयर डिस्क पूर्ण त्रुटि के कारण फ़ाइल में लिखने में विफल रहता है। परीक्षण स्क्रिप्ट स्वचालित होनी चाहिए, ताकि हम इसे रातोंरात परीक्षणों पर चला सकें, उदाहरण के लिए। टेस्ट स्क्रिप्ट को विभिन्न कंप्यूटरों पर भी काम करना चाहिए, इसलिए वर्चुअल मशीन जैसे सॉफ़्टवेयर को स्थापित करना इस मामले में सबसे अच्छा समाधान नहीं होगा।मैं विंडोज वातावरण में डिस्क पूर्ण त्रुटि का अनुकरण कैसे कर सकता हूं?

कैसे मैं एक Windows वातावरण में उस त्रुटि अनुकरण कर सकते हैं?

+0

लोग इस बात को अनदेखा करते हैं कि आपने "परीक्षण परिदृश्य" लिखा है। इसका मतलब है कि, आप एक ऐसे समाधान की तलाश करते हैं जो पर्यावरण के बावजूद काम करता है (एक अलग कंप्यूटर पर परीक्षण)। – Leonidas

+0

लियोनिडास: टिप्पणियों के लिए धन्यवाद। मैंने सवाल अपडेट किया है। –

+0

संबंधित: [कोई खाली डिस्क स्थान स्थिति अनुकरण करने का सबसे आसान तरीका?] (Http://stackoverflow.com/q/2043999) – tchrist

उत्तर

11

आप एक पूरे फ्लॉपी डिस्क को लिखने का प्रयास कर सकता है।

संपादित करें:

आपकी संपादित प्रश्न के प्रकाश में, आप एक साझा नेटवर्क कोई डिस्क स्थान कोटे के साथ सेट और उस के लिए लिख सकते हैं। तब लॉग ऑन उपयोगकर्ता या मशीन पर ध्यान दिए बिना त्रुटि उत्पन्न की जाएगी।

+5

या, इस शताब्दी से, एक पूर्ण यूएसबी डिस्क। यदि आवश्यक हो तो इसे दोबारा विभाजित करें। यूएसबी डिस्क/स्टिक/जो कुछ भी के लिए – gregmac

+1

+1। 200 9 में प्रतिक्रिया करने के लिए फ्लॉपी के लिए घंटों और घंटों का इंतजार कौन करेगा? –

+4

अब भी फ्लॉपी डिस्क कौन है? हालांकि इरादे अच्छे थे, 1 99 0 में रहने के लिए क्षमा चाहते थे! :) –

6

यह थोड़ा अधिक प्रतीत हो सकता है, लेकिन एक चीज जिसे मैं सोच सकता हूं वह वर्चुअल मशीन का उपयोग करना है, और इसकी वर्चुअल डिस्क को ओएस फिट करने के लिए पर्याप्त रूप से पर्याप्त सेट करना है। इसे किनारे पर टिपने के लिए कुछ कचरा फाइलों के साथ भरें, फिर अपना प्रोग्राम चलाएं।

5

एक माध्यमिक विभाजन बनाएं, जंक के साथ इसे भरने और फिर वहाँ अपने कार्यक्रम चलाते हैं।

+0

क्या ऐसी स्क्रिप्ट लिखने का कोई तरीका है जो विभाजन को कॉन्फ़िगरेशन को कॉन्फ़िगर करता है? –

+0

अलसेयू: कई fdisk संस्करण कमांड लाइन पैरामीटर स्वीकार करते हैं। –

2

प्रत्येक कंप्यूटर पर काम करने वाली सबसे अच्छी चीज (जैसे परीक्षण एक समर्पित मशीन पर अनिवार्य रूप से नहीं किया जाता है) एक रैमड्राइव/रैमडिस्क होगा जो फ्लाई पर स्थापित किया जा सकता है।

केवल अब तक एक वर्चुअल डिस्क एसडीके मिला है see here जो शायद आपके buzild प्रक्रिया में शामिल किया जा सकता है।

अलग-अलग विचार: शायद आपके परीक्षण कंप्यूटर को एक साझा नेटवर्क फ़ोल्डर (जो पूर्ण है) को ड्राइव के रूप में माउंट करने के लिए सेट किया जा सकता है?

2

एक नया उपयोगकर्ता खाते को बनाएं, इसके लिए एक कोटा निर्धारित करते हैं, और यह है कि उपयोगकर्ता के रूप में अपने अनुप्रयोग चलाने के लिए runas का उपयोग करें। (बिल्कुल डिस्क के समान नहीं है, लेकिन समान परिणाम होना चाहिए।)

10

TrueCrypt डाउनलोड और इंस्टॉल करें। फिर आप जो भी आकार चाहते हैं उसका वर्चुअल विभाजन बना सकते हैं (कुछ मेगाबाइट्स), इसे माउंट करें और फिर इसे दो दस्तावेज़ों से भरें।

2

ऑपरेटिंग सिस्टम अन्य ड्राइव भरने के बजाए सिस्टम ड्राइव भरने के लिए अलग-अलग प्रतिक्रिया देगा और जैसे आपका एप्लिकेशन भी ऐसा करेगा? भौतिक मीडिया का उपयोग करने के बावजूद बस एक ड्राइव भरना एक सटीक परीक्षण नहीं होने वाला है।

आप एक पूर्ण डिस्क के लिए फाइल सिस्टम घटना नकली नहीं कर सकते? डिस्क भरने तक आप इंतजार क्यों करना चाहेंगे? क्या आप समय-समय पर डिस्क स्पेस की निगरानी नहीं करना चाहते हैं और डिस्क को प्रतिशत के मार्जिन के साथ उपयोगकर्ता को चेतावनी देना चाहते हैं? जब तक डिस्क स्पेस टर्मिनल न हो, तब तक प्रतीक्षा करने के बजाय, जब तक समस्या हल नहीं हो जाती है, तब तक आपके एप्लिकेशन को काम करने से रोकें, ऐसा नहीं करने से कोई भी डेटा आईओ प्रभावित हो सकता है और अप्राप्य हो सकता है!

परीक्षण है तो एक आभासी मशीन स्वचालित, आवेदन की तैनाती और फिर एक पुनरावर्ती स्क्रिप्ट के साथ शेष स्थान को भरने के एक कठिन एकीकरण परीक्षण होने के लिए संभव है।

4

आप एक छोटे रैमडिस्क सेटअप सकता है और उस पर लिखते हैं। कुछ free ramdisk products के लिए यह पृष्ठ देखें।

10

Windows XP या बाद के लिए:

यह आदेश ग के लिए मुफ्त स्थान की मात्रा प्राप्त कर सकते हैं: \ ड्राइव:

for /f "usebackq tokens=1-5" %%A in (`dir c:\ ^| find "bytes free"`) do (
    set FREE_SPACE=%%C 
) 

बदलें c: अपने ड्राइव के साथ \, के रूप में की जरूरत है।

फिर आप इस मूल्य से दूर कुछ जगह ले जा सकते हैं, ताकि आप एक छोटे से कमरे के साथ काम करना है:

set /a FREE_SPACE=FREE_SPACE-1024 

या तुम मुक्त रखना चाहते हैं लेकिन अधिक स्थान।

आप डिस्क पर मुक्त अंतरिक्ष को भरने के लिए एक फ़ाइल बनाने के लिए fsutil आदेश का उपयोग कर सकते हैं:

fsutil file createnew c:\spacehog.dat %FREE_SPACE% 

अपने परीक्षण चलाएँ, ड्राइव करने के लिए लिख। 1024 बाइट्स लिखने के बाद या तो आपको अंतरिक्ष से बाहर भागना चाहिए।

+0

यही वह है जो मैंने उपयोग किया, और यह बहुत अच्छा काम किया। मेरा एक्सपी इंस्टॉल एक वीएम है, इसलिए मैंने पहले एक स्नैपशॉट किया था, fsutil, और मेरे परीक्षण को निष्पादित किया। –

+0

यह केवल तभी होगा जब खाली स्थान 2 जीबी से कम हो, हालांकि। 'cmd' अंकगणित 32-बिट हस्ताक्षरित पूर्णांक तक सीमित है। मुझे लगता है कि पिछले दशक में काम करने के लिए उस छोटी सी खाली जगह को ढूंढना मुश्किल होगा। – Joey

2

मैं इसे विंडोज 7 के साथ compatiable बनाने के लिए ऊपर स्क्रिप्ट के लिए एक संशोधन कर दिया है का उपयोग करें ... अनिवार्य रूप से बयान के लिए करने के लिए स्विच "/ -c" जोड़ने। यह हजारों सेपरेटर को हटा देता है क्योंकि fsutil इसे कथन में पसंद नहीं करता है।

for /f "usebackq tokens=1-5" %%A in (`dir /-c d:\ ^| find "bytes free"`) do (set FREE_SPACE=%%C) 
fsutil file createnew d:\largefile.txt %FREE_SPACE% 
6

बेस्ट विकल्प: माइक्रोसॉफ्ट के कार्यक्रम

कारण उपभोग:

  • यह (एक अलग ड्राइव बनाम) सिस्टम डिस्क परीक्षण
  • यह तेज़ है - करने के लिए कार्यक्रम चलाने डिस्क तुरंत भरें, अब
  • की आवश्यकता होने पर रोकें
  • यह आसान है - फाइलें बनाना और हटाना नहीं। चारों ओर लटका कोई अतिरिक्त परीक्षण विभाजन। स्थापना की आवश्यकता है, लेकिन आप बाद में एक सरल कमांड का उपयोग कर सकते हैं।

    1. स्थापित Windows Server 2003 Resource Kit Tools
    2. cd "%ProgramFiles(x86)%\Windows Resource Kits\Tools" (या जहाँ भी इसके इंस्टॉल हो)
    3. consume.exe -disk-space

    कमान (विंडोज 7 पर ठीक काम करता है):

  • यह स्क्रिप्ट

कदम है आउटपुट:

C:\Program Files (x86)\Windows Resource Kits\Tools>consume.exe 
Universal Resource Consumer - Just an innocent stress program, v 0.1.0 
Copyright (c) 1998, 1999, Microsoft Corporation 

    consume RESOURCE [-time SECONDS] 

RESOURCE can be one of the following: 

    -physical-memory 
    -page-file 
    -disk-space 
    -cpu-time 
    -kernel-pool 


C:\Program Files (x86)\Windows Resource Kits\Tools>consume.exe -disk-space 
Consume: Message: Total disk space:   96049 Mb 
Consume: Message: Free disk space:   14705 Mb 
Consume: Message: Free per user space:  14705 Mb 
Consume: Message: Attempting to use:  14705 Mb 
Consume: Message: Reattempting to use:  14705 Mb 
Consume: Message: Sleeping ... 

अन्य विकल्प:

  • विंडोज 7 एक virtual hard drive feature है।मूल रूप से निम्न कार्य करें: कंप्यूटर प्रबंधन> डिस्क प्रबंधन> कार्रवाई मेनू> VHD> राइट क्लिक करें डिस्क बनाएँ और प्रारंभ> राइट क्लिक करें
  • बड़ी फ़ाइलों को उत्पन्न (तत्काल होना चाहिए) जब तक आपके डिस्क एक शेल कमांड या Dummy File Generator प्रोग्राम का उपयोग भरा हुआ है। एक और prorgram: SpaceHog
+1

विंडोज 7 में वर्चुअल हार्ड ड्राइव फीचर ने मेरे लिए चाल बनाई। मुझे उचित हैंडलर तर्क बनाने के लिए त्रुटि के लिए परीक्षण करने की आवश्यकता है। मैंने 10 एमबी वीएचडी बनाया। विन्डोज़ बहीखाता वीएचडी पर लगभग 7 एमबी लेती है, इसलिए जब मैं डिस्क पर 3 एमबी से बड़ी फ़ाइल लिखने की कोशिश करता हूं, तो यह त्रुटि को थकाता है। – Snapman

संबंधित मुद्दे