2013-10-16 8 views
7

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

तो मुझे यकीन नहीं है कि यह मेरे वेब ऐप के लिए काम करेगा क्योंकि यह मूल ऐप या हाइब्रिड ऐप नहीं है।

क्या कोई मुझे प्रबुद्ध कर सकता है?

धन्यवाद!

उत्तर

8

सबसे पहले, आप को पता है वेब अनुप्रयोग आप किस तरह का परीक्षण करना चाहते हैं की जरूरत है।

  1. मूल निवासी आवेदन
    हाँ, आप इसे Appium जो मोबाइल के परीक्षण के लिए एक लोकप्रिय उपकरण है मदद से इसका परीक्षण कर सकते हैं: से Saucelabs

    जानकारी के अनुसार वेब अनुप्रयोग के तीन प्रकार के होते हैं।

  2. हाइब्रिड आवेदन (मूल निवासी + वेबव्यू)
    हाँ, आप इसे Appium साथ लेकिन एक छोटे चाल है कि आप वेब दृश्य मोड में स्विच करने संदर्भ बदलना पड़ सकता है के साथ परीक्षण कर सकते हैं। appium.io
  3. वेब एप्लिकेशन (एप्लिकेशन कि अपने मोबाइल डिवाइस पर स्थापित ब्राउज़र से पहुँचा जा सकता है, वह नहीं जिसका आप डाउनलोड कर सकते हैं और स्थापित)
    हाँ, और जानकारी के appium.io पर भी कर रहे हैं।

इसके अलावा, वहाँ वास्तव में एक अन्य प्रकार के अनुप्रयोग के है: संकर एप्लिकेशन, लेकिन अनुकूलित वेबदृश्य के साथ।
मैं हाल ही में इसके साथ संघर्ष कर रहा हूं क्योंकि मुझे वेबव्यू मोड में खोजने और स्विच करने में परेशानी है।

2

हाँ, मैं यकीन है कि आप कर सकते हैं चाहता हूँ, यहाँ एक नजर है:

संपादित करें: पुरानी लिंक तय link to appium doc

इसके अलावा, एक संबंधित सवाल here

+0

https://github.com/appium/appium/blob/master/docs/en/mobile-web.md – sibidiba

+1

जिथब के लिंक टूटा हुआ है, कृपया –

+0

को ठीक करें कृपया यह आधिकारिक दस्तावेज़ देखें: http: // appium। आईओ/डॉक्स/एन/लेखन-रनिंग-एपियम/वेब/मोबाइल-वेब/ – eeadev

0

आप के बारे में मोबाइल में बात कर रहे हैं, तो वेब ऐप्स, हाँ आप का उपयोग कर सकते हैं

1

यह संभव है, यहां उदाहरण है कि रुबी में सफारी के लिए उदाहरण कैसे बनाएं:

क्षमताओं = {

:device => 'iPhone Simulator', 
    :browserName => 'iOS', 
    :version => '7.1', 
    :platform => 'Mac', 
    :app => 'safari' 
    } 
    $mobile_browser = Selenium::WebDriver.for(
     :remote, 
     :desired_capabilities =>capabilities, 
     :url => "your_server/wd/hub") 

डाउनलोड से पहले appium और प्रक्षेपण के लिए क्लिक करें appium सर्वर शुरू करने के लिए।

+0

यह काम नहीं करेगा। ब्राउज़र का नाम सफारी होना चाहिए और आपको वेब के साथ काम करने के लिए WEBVIEW संदर्भ पर स्विच करना होगा। –

-1

हां, एपियम के लिए मूल और हाइब्रिड ऐप्स दोनों का परीक्षण करना संभव है।

विंडोज मशीन के लिए, डाउनलोड करें: विंडोज के लिए एपियम। मैक मशीन के लिए, डाउनलोड करें: एपियम डीएमजी फ़ाइल।

विंडोज़ की आवश्यकता: बस Appium.exe + .apk फ़ाइल (एंड्रॉइड) + परीक्षण डिवाइस + एंड्रॉइड एसडीके स्थापित है।

मैक Appium डीएमजी फ़ाइल + .app/.ipa फ़ाइल + परीक्षण उपकरण + Xcode (प्रावधान प्रमाण पत्र) + ANT + ios-webkit-प्रॉक्सी-डिबग की जरूरत है।

वेब ऐप्स के लिए, क्योंकि वे पूरी तरह से ब्राउज़र-आधारित हैं, ऐपियम भी उन पर अच्छा काम करता है। संदर्भ के लिए

लिंक: सभी की https://github.com/appium/appium/blob/master/docs/mobile-web.md

1

मुझे मोबाइल वेब अनुप्रयोगों का परीक्षण करने में एपियम बहुत बोझिल पाया गया है क्योंकि इस तथ्य के कारण स्पर्श कार्य अच्छी तरह से समर्थित नहीं हैं। जावा स्टैंडपॉइंट से, मुझे एपियम से बात करने के लिए दो मुख्य विकल्प मिल गए हैं: Selenium RemoteWebDriver और Appium Java client से एपियम ड्रिवर।

सेलेनियम RemoteWebDriver

अब तक मैं एक Android डिवाइस सेलेनियम RemoteWebDriver और RemoteTouchScreen के प्रयोग पर हमारी वेब ऐप्स का परीक्षण करने में सक्षम है। सेलेनियम 3.6.0 और 1.6.5 Appium का उपयोग करना, मैं एक तत्व क्लिक करने के लिए 4 अलग अलग तरीकों का परीक्षण किया है:

webDriver.findElement(locator).click(); 
new Actions(webDriver).moveToElement(findElement(locator)).click().perform(); 
new RemoteTouchScreen(new RemoteExecuteMethod(webDriver)).singleTap(((Locatable)webDriver.findElement(locator)).getCoordinates()); 
new TouchActions(webDriver).singleTap(locator); 

एंड्रॉयड पर, पहले 3 तरीके काम है, लेकिन 4 एक 'समर्थित नहीं' अपवाद फेंकता है। मैंने क्लिक/टैप्स के लिए विधि 1 और जेस्चर के लिए 3 का उपयोग करने का विकल्प चुना है।

आईओएस पर, विधियों 1, 2 और 4 'अभी तक समर्थित नहीं है' अपवाद फेंक दें और विधि 3 कुछ भी नहीं करता है। चूंकि मैं समस्या निवारण के लिए समय निवेश करने के लिए तैयार नहीं था, इसलिए हम उम्मीद कर रहे हैं कि ऐपियम में सुधार होगा और आईओएस बेहतर होगा।

Appium जावा ग्राहक

मेरे Appium जावा ग्राहक (संस्करण 5.0.4) के साथ अनुभव भी बदतर अभी भी था। स्पर्श कार्यों को कैसे करें, इंटरवब्स पर चारों ओर उड़ने वाले कुछ कोड स्निपेट्स पर एक व्यापक ट्यूटोरियल प्रतीत नहीं होता है। तो इस सवाल का मेरा जवाब एक बनाने का प्रयास है।

पहले ड्राइवर का दृष्टांत और एक पृष्ठ पर नेविगेट:

new TouchAction(appiumDriver).tap(appiumDriver.findElement(By.id("search_form_input_homepage"))).perform(); 

इस में जो परिणाम: org.openqa.selenium.WebDriverException: पद्धति नहीं है

DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability("deviceName", "Samsung Android S8"); 
capabilities.setCapability("browserName", "Chrome"); 
capabilities.setCapability("platformName", "Android"); 
MobileDriver appiumDriver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 

appiumDriver.navigate().to("https://duckduckgo.com"); 

फिर एक स्पर्श क्रिया को निष्पादित अभी तक लागू किया गया है

this forum post से मैंने यह अनुमान लगाया कि मुझे टी को करने में सक्षम होने के लिए संदर्भ स्विच करना है आउच क्रियाएं प्रयास दो:

appiumDriver.context("NATIVE_APP"); 
new TouchAction(appiumDriver).tap(appiumDriver.findElement(By.id("search_form_input_homepage"))).perform(); 

यह काम करता है। हालांकि, केवल By.id चयनकर्ता के लिए। मुझे कोई अन्य चयनकर्ता नहीं मिला जो NATIVE_APP संदर्भ में काम करता है।और चूंकि हमारी वेबसाइट के अधिकांश तत्वों में एक आईडी की कमी है, इसलिए मुझे एक xpath चयनकर्ता की आवश्यकता है। प्रयास तीन:

appiumDriver.context("NATIVE_APP"); 
new TouchAction(appiumDriver).tap(appiumDriver.findElement(By.xpath("//*[@id=\"search_form_input_homepage\"]"))).perform(); 

कौन सा में हुई: org.openqa.selenium.NoSuchElementException: एक तत्व दिए गए खोज मापदंडों का उपयोग कर पृष्ठ पर ढूंढा नहीं जा सका।

अन्य कामकाज जिन्हें मैं सोच सकता था, जैसे क्रोमियम संदर्भ में वेबलेमेंट का चयन करना और फिर NATIVE_APP संदर्भ में स्थान लेना एक विकल्प नहीं है क्योंकि समन्वय प्रणाली भिन्न होती है (ब्राउज़र पिक्सल बनाम स्क्रीन पिक्सेल)।

और प्रत्येक स्पर्श कार्रवाई के बाद डिफ़ॉल्ट क्रोमियम संदर्भ पर वापस लौटना न भूलें। तो केवल काम कर उदाहरण की पूरी कोड हो जाता है:

try { 
    appiumDriver.context("NATIVE_APP"); 
    new TouchAction(appiumDriver).tap(appiumDriver.findElement(By.id("search_form_input_homepage"))).perform(); 
} finally { 
    appiumDriver.context("CHROMIUM"); 
} 

इस बात मेरी निष्कर्ष है कि Appium साथ मोबाइल वेब अनुप्रयोगों का परीक्षण अभी तक काफी वहाँ नहीं है पर।

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

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