2012-06-04 8 views
7

क्या सेलेनियम और किसी भी ब्राउज़र के साथ क्लाइंट साइड SSL प्रमाणपत्रों का परीक्षण करना संभव है? जैसे क्या आप एक वेब ड्राइवर बना सकते हैं और इसके लिए डमी प्रमाण पत्र दे सकते हैं? या एक तैयार फ़ायरफ़ॉक्स प्रोफाइल का उपयोग करें?फ़ायरफ़ॉक्स और सेलेनियम परीक्षण में SSL क्लाइंट-साइड प्रमाण पत्र स्वचालित करना

उत्तर

12

एसएसएल क्लाइंट-साइड प्रमाण पत्र के लिए सेलेनियम फ़ायरफ़ॉक्स परीक्षण प्रोफ़ाइल बनाई जा रही

आप सेलेनियम के WebDriver Firefox प्रोफ़ाइल जो क्लाइंट प्रमाण पत्र में आयातित है तैयार करने के लिए की जरूरत है।

सबसे पहले आप में निम्न कॉन्फ़िगरेशन के साथ WebDriver लांच अपने परीक्षण कोड:

# Pre-seeded Firefox profile directory 
profile_directory = os.path.join(os.path.dirname(__file__), "..", "..", "certs", "firefox-client-ssl-profile") 
self.assertTrue(os.path.exists(profile_directory)) 

profile = FirefoxProfile(profile_directory) 

# Make sure the client side certificate selection does not interrupt the test 
# XXX: What happens in other language versions? 
profile.set_preference("security.default_personal_cert", "Select Automatically") 
self.driver = WebDriver(firefox_profile=profile) 

self.selenium_helper = SeleniumHelper(self, self.driver) 
self.selenium_helper.driver = self.driver 

यूनिट परीक्षण शुरू करें और बिंदु पर उन्हें ड्राइव करें ज़ोप परीक्षण सर्वर ऊपर है। "आयात पीडीबी; पीडीबी.सेट_trace()"

के साथ परीक्षण रोकें अब आपके पास अपनी स्क्रीन पर सेलेनियम का "वेबड्राइवर" फ़ायरफ़ॉक्स उदाहरण होना चाहिए।

अपने क्लाइंट साइड प्रमाणपत्र आयात करें। प्राथमिकताएं> उन्नत> एन्क्रिप्शन> प्रमाणपत्र देखें। अपने क्लाइंट-साइड प्रमाणपत्र आपूर्ति से "client.p12" आयात करें। Webdriver फ़ायरफ़ॉक्स में क्लाइंट-साइड प्रमाणपत्र संवाद ट्रिगर URL में

जाएँ ::

https://yourservevr/triggers-client-side-certificate-ssl-handshake 

इस परीक्षण सर्वर के विरुद्ध ग्राहक के पक्ष प्रमाण पत्र को स्वीकार करने का संकेत चाहिए। मैन्युअल रूप से सबकुछ स्वीकार करें।

मेनू में जाएं सहायता> समस्या निवारण जानकारी> एप्लिकेशन मूल बातें> खोजक में दिखाएं। यह वेबड्राइवर की सक्रिय प्रोफ़ाइल फ़ाइलों को रखने वाली अस्थायी निर्देशिका खोलता है।

फ़ायरफ़ॉक्स प्रोफाइल फ़ाइलों को कॉपी करें cert8.db और key3.db अपने यूनिट टेस्ट पैकेज वेबड्राइवर फ़ायरफ़ॉक्स प्रोफाइल के बीज फ़ोल्डर में कॉपी करें। यह वह फ़ोल्डर है जहां सेलेनियम फ़ायरफ़ॉक्स वेब ड्राइवर के लिए बीजों को चुनता है जब परीक्षणप्रारंभ होता है।

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

अधिक जानकारी

+1

Firefox संस्करण 58 से यह cert9.db किया जाएगा और key4.db. विजुअल स्टूडियो के साथ यह सुनिश्चित करने के लिए कि इन बिल्डिंग की प्रतिलिपि बनाई गई है, सुनिश्चित करने के लिए उन्हें गुणों में "हमेशा कॉपी करें" के रूप में चिह्नित किया जाएगा। – 321X

1

मुझे नहीं पता कि यह मदद करता है, लेकिन आप प्रोफाइल में कुछ प्राथमिकताओं को बदल सकते हैं। जावा में, आप यह कर सकते हैं।

ProfilesIni allProfiles = new ProfilesIni(); 
    FirefoxProfile profile = allProfiles.getProfile("default"); //change profile name. there is a note somewhere on how to change it 
    profile.setPreference(uaKey, uaValue); 
    profile.setAcceptUntrustedCertificates(acceptUntrustedSsl); 

मुझे यकीन नहीं है कि आपको यही चाहिए।

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