Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL लेनदेन का परीक्षण कैसे करें?

सबसे पहले, आपके कार्यान्वयन में एक बग है। यदि कोई क्वेरी त्रुटिपूर्ण हो जाती है, तो वर्तमान लेनदेन स्वचालित रूप से वापस लुढ़क जाता है और फिर बंद हो जाता है। इसलिए जैसे-जैसे आप प्रश्नों को निष्पादित करना जारी रखेंगे, वे लेन-देन के भीतर नहीं होंगे (वे डीबी के लिए प्रतिबद्ध होंगे)। फिर, जब आप Rollback निष्पादित करते हैं , यह चुपचाप विफल हो जाएगा। MySQL डॉक्स से :

Rolling back can be a slow operation that may occur implicitly without the user 
having explicitly asked for it (for example, when an error occurs).

स्पष्ट आदेश Rollback केवल तभी उपयोग किया जाना चाहिए जब आप एप्लिकेशन में निर्धारित करते हैं कि आपको रोलबैक करने की आवश्यकता है (क्वेरी त्रुटि के अलावा अन्य कारणों से)। उदाहरण के लिए, यदि आप किसी खाते से धनराशि काट रहे हैं, तो आप स्पष्ट रूप से रोलबैक करेंगे यदि आपको पता चलता है कि उपयोगकर्ता के पास एक्सचेंज को पूरा करने के लिए पर्याप्त धनराशि नहीं है...

जहां तक ​​लेन-देन का परीक्षण करने की बात है, मैं डेटाबेस की प्रतिलिपि बनाता हूं। मैं एक नया डेटाबेस बनाता हूं और "डमी डेटा" का एक सेट स्थापित करता हूं। फिर मैं एक स्वचालित उपकरण का उपयोग करके सभी परीक्षण चलाता हूं। उपकरण वास्तव में लेन-देन करेगा और रोलबैक को बाध्य करेगा, और जांच करेगा कि अपेक्षित डेटाबेस स्थिति पूरे परीक्षणों में बनी हुई है। चूंकि लेन-देन से अंतिम स्थिति को प्रोग्रामिक रूप से जानना कठिन है, यदि आपके पास लेनदेन के लिए अज्ञात इनपुट है, तो लाइव (या यहां तक ​​​​कि कॉपी-से-लाइव) डेटा का परीक्षण करना आसान नहीं होगा। आप इसे (और चाहिए) कर सकते हैं, लेकिन यह निर्धारित करने के लिए कि आपका सिस्टम काम कर रहा है या नहीं, उन परिणामों पर निर्भर न रहें। स्वचालित परीक्षक के लिए नए परीक्षण मामले बनाने के लिए उन परिणामों का उपयोग करें...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql.sock गुम है; ऑपरेशनल एरर देना:(2002, सॉकेट '/tmp/mysql.sock' (2) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता)

  2. MySQL में पिछले 12 महीनों का डेटा कैसे प्राप्त करें

  3. mysql संयुक्त अद्वितीय कुंजी

  4. MySQL-अजगर स्थापित करना

  5. गलत डेटाटाइम मान डेटाबेस त्रुटि संख्या:1292