2013-06-08 6 views
5

मैं SoapUI से चलाने के लिए नीचे दिए गए कोड का इस्तेमाल किया है, लेकिन मैं अभी भी एक लापता संपत्ति अपवाद:सोपूआई का उपयोग कर ट्विटर एपीआई तक कैसे पहुंचे?

ऐसा कोई सम्पत्ति वर्ग अनुरोध

मैं इस मुद्दे को कैसे ठीक करूं के लिए मौजूद है?

def project = com.eviware.soapui.model.support.ModelSupport.getModelItemProject(request) 

// initialize OAuth consumer  
def consumer = new oauth.signpost.commonshttp.CommonsHttpOAuthConsumer(project.getPropertyValue("oauth_consumer_key"), project.getPropertyValue("oauth_consumer_secret"));  
consumer.setTokenWithSecret(project.getPropertyValue("oauth_access_token"), project.getPropertyValue("oauth_access_token_secret")); 

// sign the request  
consumer.sign(context.httpMethod) 
+0

पर इसे कार्यान्वित करने के तरीके पर मार्गदर्शिका दी गई है क्या यह पायथन है? कोड सोपूआई परीक्षण ढांचे के बिना काम करता है? – mb21

+0

यह ग्रोवी कोड टुकड़ा है जो साबुन ui – ChanGan

उत्तर

1

संपादित: एपीआई गाइड पर एक दृष्टि डाली, और ऐसा लगता है आप निम्नलिखित है:

def project = com.eviware.soapui.model.support.ModelSupport.getModelItemProject(request) 

तो फिर तुम project.getPropertyValue कहते हैं। API guide के अनुसार, com.eviware.soapui.model.support.ModelSupport के लिए getPropertyValue नामक ऐसी कोई विधि नहीं है।

com.eviware.soapui.model.project नामक एक इंटरफ़ेस है। जब तक आप interface com.eviware.soapui.model.TestPropertyHolder से विरासत में नहीं हैं, तो आपको getPropertyValue नहीं मिलेंगे।


अपनी समस्या का समाधान करने में मदद के लिए, आपको अपने कोड में डीबग करना होगा। आपकी पहली पंक्ति पर 'अनुरोध' के परिणामों के आधार पर, आप बहुत अच्छी तरह से संपत्ति oauth_consumer_key, oauth_consumer_secret, oauth_access_token या oauth_access_token_secret हो सकते हैं। request की सामग्री आउटपुट करें (या def project पर सोपूआई में ब्रेक पॉइंट सेट करें और यदि आपके पास संपत्ति है तो सत्यापन के माध्यम से कार्य करें)।

अन्यथा, आपकी समस्या से निपटने के लिए कुछ वैकल्पिक तरीके हैं। ये सोपूआई के साथ ओएथ का उपयोग करने के लिए तैयार समाधान हैं।

प्रयास करें following:

def gu = new com.eviware.soapui.support.GroovyUtils(context); 

def xml = gu.getXmlHolder('Authenticate - Default#Response'); 
def token = xml.getNodeValue('/auth/token'); 
log.info('Got token: ' + token); 

def suite = context.testCase.testSuite; 
suite.setPropertyValue('auth_token', token); 
log.info('Saved auth_token to suite.'); 

इस कोड के लाभ यह है कि "टोकन TestSuite गुण स्थायी रूप से में चारों ओर चिपक है यह मैं के बाद परीक्षण चलाने के लिए अनुमति देने के पक्ष प्रभाव/लाभ है। प्रमाणीकरण परीक्षण "।

यदि यह काम नहीं करता है, तो great article here बताता है कि Vimeo के खिलाफ OAuth कैसे करें; यह ट्विटर ओएथ के समान होना चाहिए।

इन समाधानों में से कोई भी सोपूआई प्रो की आवश्यकता नहीं है।

+0

में उपयोग कर रहा है क्या इसे साबुन ui समर्थक की आवश्यकता है ??? मेरे पास केवल साबुन उई है .. यह साबुन उई में काम नहीं करेगा? – ChanGan

+0

इसे सोपूआई प्रो की आवश्यकता नहीं है। ** [यह] (http: //xebee.xebia) के अनुसार यह मुफ्त सोपूआई – kgdesouz

+0

के साथ काम करना चाहिए।में/2011/03/31/test-oauth-Protect-rest-services-use-soapui /) ** ब्लॉग पोस्ट (उत्तर में पाया गया), वे * फ्री * '[ग्रोवी स्क्रिप्टिंग सपोर्ट] (http: //www.soapui.org/About-SoapUI/compare-soapui-and-soapui-pro.html) 'सोपूआई के * मुक्त * संस्करण में मिला। यह वही जवाब है जिसे आप ढूंढ रहे हैं, जिसमें इसे चलाने के लिए आवश्यक सभी कोड शामिल हैं। – kgdesouz

1

आपके द्वारा यहां शामिल किया गया कोड प्रोजेक्ट संपादक में ईवेंट टैब में जाता है और आप निष्पादित करने के लिए RequestFilter.filterRequest ईवेंट का उपयोग करते हैं। आपको उपभोक्ता_की, उपभोक्ता_सेक्रेट, oauth_acces_token, और oauth_acccess_token_secret के लिए कस्टम गुण भी बनाना होगा।
यहां स्मार्टबियर वेबसाइट http://www.soapui.org/REST-Testing/twitter-sample-project.html

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