2016年1月31日星期日

如何使用Java代码启动Appium Server?



 我们已经了解了如何手动启动和停止Appium服务器,现在在这篇文章中,我们将了解如何以编程方式启动和停止Appium服务器。 Appium提供了API,因此您可以在运行测试用例或测试服之前启动服务器,然后在执行结束后停止服务器。

一旦安装了appium,就可以在其中找到文件node.exe和appium.js。您需要这两个文件的路径才能以编程方式启动apium服务器。然后,您可以复制并粘贴以下代码。在@BeforeClass或@BeforeTest中调用appiumStart()。

所需的Jar文件是 commons-validator-1.4.1.jarjava-client-3.2.0.jar 您可以从中下载 这里.

视频 -



有关代码的说明-

鸦片DriverLocalService类提供了用于启动和停止服务器的api,因此我们在下面的代码中使用了此方法。usingPort()方法用于提供用于启动服务器的端口号。我们需要将node.exe路径传递给usingDriverLocation()方法,并将appium.js路径传递给withAppiumJs()方法。然后使用start()和stop()方法来启动和停止服务器。在设置所需功能时,我们需要使用getUrl()方法获取和传递网址。




import java.io.File;

import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;

public class 鸦片ServerStartStop {

    static String Appium_Node_Path="C:\\Program Files (x86)\\Appium\\node.exe";
    static String Appium_JS_Path="C:\\Program Files (x86)\\Appium\\node_modules\\appium\\bin\\appium.js";
    static AppiumDriverLocalService service;
    static String service_url;

    public static void appiumStart() throws Exception{
        service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder().
                usingPort(2856).usingDriverExecutable(new File(鸦片_Node_Path)).
                withAppiumJS(new File(鸦片_JS_Path)));
        service.start();
        Thread.sleep(25000);
        service_url = service.getUrl().toString();
    }

    public static void appiumStop() throws Exception{
        service.stop();

    }
}

请注意,在设置所需功能时,请使用如下所示的service_url-

鸦片Driver driver= new AndroidDriver(new URL(service_url),cap);

如果您觉得此贴子有用,请与您的朋友分享,如果您有任何疑问或建议,请在下面的评论部分与我分享。请按照QA Automated获取最新更新。


 

2016年1月29日,星期五

使用Espresso数据适配器测试列表视图



浓咖啡数据适配器用于测试 像ListView这样的适配器视图&GirdView。简而言之,适配器视图是其子项由适配器界定的视图。在这种情况下,如果onView(),我们需要使用onData(),因为onData()是与绑定到视图项的数据匹配的对象。


影片教学-


我将详细说明使用Espresso进行ListView的测试。以下是带有50个列表项的应用程序的屏幕截图。每行包含一个TextView和一个ToggleButton。顶部是文本“单击行号”。这将显示您刚刚单击的行号。 ToggleButton(如果选中)将显示文本“ checked”(已选中)。这就是我们现在要测试的ListView的全部内容。

浓缩咖啡数据适配器
浓缩咖啡数据适配器
1.测试ListView的滚动功能-在此我们需要测试滚动到特定位置并滚动到ListView的末尾


@Testpublic void testScrollingAt()throws Exception
{
    // Scrolls till the position 20 

 onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 20")))

    .check(matches(isCompletelyDisplayed()));
    //scrolls till the end     

onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 49")))

    .check(matches(isCompletelyDisplayed()));
}

 
使用Espresso数据适配器测试列表项
使用Espresso测试清单项目
2.测试单击特定列表项,然后检查是否选中了列表项。


@Testpublic void testClickOnListItem()
{
    onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 25")))
            .onChildView(withId(R.id.rowTextView)).perform(click());
    onView(withId(R.id.selection_row_value)).check(matches(withText("25")));
}

 
带有Espresso适配器的测试清单
带有Espresso适配器的测试清单
4.测试特定行的切换按钮



@Testpublic void testToggleButton()throws Exception
{
    onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 25")))
            .onChildView(withId(R.id.rowToggleButton)).perform(click());
    Thread.sleep(1000);
    onData(hasEntry(equalTo(ListViewSample.ROW_TEXT),is("List item: 25")))
            .onChildView(withId(R.id.rowToggleButton)).check(matches(isChecked()));
}
带有Espresso适配器的测试清单
带有Espresso适配器的测试清单

我希望这篇文章可以帮助您找到适合您的测试服的代码:)
请在下面的评论部分中分享您的反馈,并按照质量检查自动化以获取最新的帖子更新。HappyTesting :-)

Download sample code from - //github.com/googlesamples/android-testing

2016年1月28日,星期四

如何使用Espresso测试Toast消息?



现在,有许多应用程序使用Toast Messages,如果您正在测试显示Toast Messages的android应用程序,并且您想编写Espresso测试用例来声明Toast Message,那么这篇文章将帮助您实现。在上一篇文章中 我分享了如何添加自定义匹配器? 当我要添加自定义Matcher来测试Toast时,这将有助于您清楚地理解此信息。

影片教学- 
 

以下是ToastMatcher,用于确定Toast不属于活动窗口-

public class 到 astMatcher extends TypeSafeMatcher<Root> {

    @Override    public void describeTo(Description description) {
        description.appendText("is toast");
    }

    @Override    public boolean matchesSafely(Root root) {
        int type = root.getWindowLayoutParams().get().type;
        if ((type == WindowManager.LayoutParams.TYPE_TOAST)) {
            IBinder windowToken = root.getDecorView().getWindowToken();
            IBinder appToken = root.getDecorView().getApplicationWindowToken();
            if (windowToken == appToken) {
              return true;
            }
        }
        return false;
    }



您可以像下面这样在测试用例中使用此ToastMatcher-

1.测试是否显示Toast消息

onView(withText(R.string.mssage)).inRoot(new ToastMatcher())
.check(matches(isDisplayed()));

2.测试是否未显示Toast消息

onView(withText(R.string.mssage)).inRoot(new ToastMatcher())
.check(matches(not(isDisplayed())));

3.测试ID Toast包含特定的文本消息
 

onView(withText(R.string.mssage)).inRoot(new ToastMatcher())
.check(matches(withText("Invalid Name"));

 

我希望这篇文章可以帮助您找到适合您的测试服的代码:)
请在下面的评论部分中分享您的反馈,并按照质量检查自动化以获取最新的帖子更新。HappyTesting :-)

2016年1月22日,星期五

如何在Espresso中创建自定义匹配器?



浓咖啡允许我们创建自己的自定义匹配器,对我来说,这对于自动化确实非常有用。一旦我学会了如何使用它,便会使用许多自定义匹配器,因为它为我提供了自动化不同功能的灵活性。

影片教学-



测试方案> 
您想要测试一个简单的登录屏幕,并检查是否输入为负或没有输入,那么它会显示错误消息,如图所示。
浓咖啡自定义匹配器示例
浓咖啡自定义匹配器示例


测试此内容的有效方法是使用客户匹配器。让我们看看如何创建自定义匹配器
1.使用以下代码在androidTest文件夹中创建一个类名称ErrorMatcher


public class ErrorMatcher {


        
 @NonNull

 public static Matcher<View> withError(final Matcher<String> stringMatcher) {

            return new BoundedMatcher<View, TextView>(TextView.class) {

                
 @Override

 public void describeTo(final Description description) {
                    description.appendText("error text: ");
                    stringMatcher.describeTo(description);
                }

                
 @Override

 public boolean matchesSafely(final TextView textView) {
                    return stringMatcher.matches(textView.getError().toString());
                }
            };
        }
    }

2.匹配逻辑是将TextView的子集仅与错误消息进行匹配。
3. describeTo方法用于调试输出。
4.然后,您可以在测试用例中使用自定义匹配器,如下所示


@Test 

public void testLoginMandatory()
{
    onView(withId(R.id.email_sign_in_button)).perform(click());
    onView(ErrorMatcher.withError(Matchers.
            containsString("The field is required"))).check(matches(isDisplayed()));
}

我希望这篇文章可以帮助您找到适合您的测试服的代码:)
请在下面的评论部分中分享您的反馈,并按照质量检查自动化以获取最新的帖子更新。HappyTesting :-)

2016年1月21日,星期四

如何在Espresso中使用视图匹配器,视图操作和视图断言?

View Matchers -

影片教学-


浓咖啡具有许多ViewMatcher选项,这些选项对于唯一定位UI元素非常有效。您还可以组合并创建视图匹配器组合,以唯一地查找元素。即使在这些视图匹配器的帮助下,在Espresso中我们也可以非常有效地定位元素。 

在本文中,您将找到Espresso提供的所有ViewMatcher选项,包括示例和简短内容。如果您花一点时间浏览本文,您将能够更快地创建自动化测试用例。

视图匹配器的编写方式类似于常用的onView(ViewMatcher)。在View上可以执行两种类型的操作,它们是:
onView(ViewMatcher).perform(ViewAction)
onView(ViewMatcher).check(ViewAssertion)



// frequently used matchers
// using resurce id
onView(withId(R.id.anuja));
// using visible text
onView(withText("Done"));
// using content description
onView(withContentDescription("profile"));
//using Hint Text
onView(withHint("Sample_text"));
// using spinner text
onView(withSpinnerText("Spinner_text"));
//return TextView with links
onView(hasLinks());

//UI property matchers are mostly used in combination 

onView(allOf(withId(R.id.anuja),isDisplayed()));
onView(allOf(withId(R.id.anuja),isCompletelyDisplayed()));
onView(allOf(withId(R.id.anuja),isClickable()));
onView(allOf(withId(R.id.anuja),isChecked()));
onView(allOf(withId(R.id.anuja),isNotChecked()));
onView(allOf(withId(R.id.anuja),isEnabled()));
onView(allOf(withId(R.id.anuja),hasFocus()));
onView(allOf(withId(R.id.anuja),hasLinks()));
onView(allOf(withId(R.id.anuja),isSelected()));
onView(allOf(withId(R.id.anuja), hasContentDescription()));

//object matcher example 

onView(withClassName(endsWith("EditText")));
onView(withText(startsWith("Hello")));
onView(allOf(withId(R.id.anuja), isDisplayed()));
onView(anyOf(withText("sample")));

//onData is used in case of ListView, GridView and AdapterView 

onData(withText("List")).atPosition(2);

//Root Matchers 

//Matches with Text on dialog 

onView(withText(R.string.hello_world)).inRoot(isDialog()); 

//Matches with Root that takes windows focus 

onView(withText(R.string.hello_world)).inRoot(isFocusable()); 

//Matches with root whoch is autocomplete or action bar spinner 

onView(withText(R.string.hello_world)).inRoot(isPlatformPopup()); 

//Matches with root that can handle touch events 

onView(withText(R.string.hello_world)).inRoot(isTouchable()); 

//Matchers with decor view 

onView(withText(R.string.hello_world)).inRoot(withDecorView(isDisplayed()));

我已经提到了一些ViewMatcher示例的常用组合。除此之外,您还可以根据需要创建“自定义匹配器”。我将在以后的文章中也发布该示例。


查看动作-

影片教学-


您可以对所选元素执行各种操作,以自动化并减少您的手动工作和时间。现在让我们来看一下Espresso中最常用的View Actions。


//To type a test inside TextBox 

onView(withText("Enter Name")).perform(typeText("John"));
//To replace the text already written in TextBox 

onView(withText("Enter Name")).perform(replaceText("到 m"));
//To type Text inside the focus view 

onView(withText("Enter Name")).perform(typeTextIntoFocusedView("到 m"));
//To clear the text from TextBox

 onView(withText("Enter Name")).perform(clearText());
//To click a button

 onView(withText("Done")).perform(click());
//To perform double click

 onView(withText("Done")).perform(doubleClick());
//To perform long press operation 

onView(withText("Done")).perform(longClick());
//To swipe up the view

 onView(withId(R.id.sample_view)).perform(swipeUp());
//To swipe down a view

 onView(withId(R.id.sample_view)).perform(swipeDown());
//To swipe left 

onView(withId(R.id.sample_view)).perform(swipeLeft());
//To swipe right

 onView(withId(R.id.sample_view)).perform(swipeRight());
// To scroll ListView 

onView(withId(R.id.list_view)).perform(scrollTo());
//press backpressBack();
//press IME buttons of softkeyboard like done,ok,enter,
//searchpressImeActionButton();
//To close soft keybaord 

closeSoftKeyboard();
//To open phone specific menu 

pressMenuKey();
//To press key with 

keycodepressKey(66);
//To open as Link in the browser

 onView(withText("www.googl.com")).perform(openLinkWithText("www.google.com"));


没有断言决不能将测试用例称为完成,因此了解由Espresso提供的View Assertions来完成您的测试用例非常重要。


//check the element is displayed 

onView(withId(R.id.anuja)).check(matches(isDisplayed()));
//check the element displays perticular Text 

onView(withId(R.id.anuja)).check(matches(withText(R.string.hello_world)));
onView(withId(R.id.anuja)).check(matches(withText("Hello world")));
//check if the one element is displayed on right of the other element 

onView(withId(R.id.anuja)).check(isRightOf(withText("Hi")));
//check if the one element is displayed on left of the other element 

onView(withId(R.id.anuja)).check(isLeftOf(withText("Hello")));
//check if the one element is displayed on below of the other element

 onView(withText("how are you")).check(isBelow(withText("Hi")));
//check if the one element is displayed on below of the other element

 onView(withText("Hi")).check(isAbove(withText("How are you")));
//check element does not exists 

 onView(withText("I am fine")).check(doesNotExist());


附注-欢迎大家提出任何疑问或发表您自己的样品。

我希望这篇文章可以帮助您找到适合您的测试服的代码:)
请在下面的评论部分中分享您的反馈,并按照质量检查自动化以获取最新的帖子更新。HappyTesting :-)

2016年1月20日,星期三

如何添加和运行案件?



在添加任何测试用例之前,一定要遵循正确的项目结构,这一点很重要。 点击这里 知道在哪里添加您的Espresso仪器测试用例。

影片教学-



在本文结束时,您将准备好第一个Espresso测试用例。有两种方法可以在Espresso中编写测试用例套装,而本篇博文将针对简单的Hello World App涵盖这两种方法。

第一种方法是使用Activity Instrumentation。下面是简单测试用例,它会在启动活动后检查具有给定ID的UI元素->
1.该类使用两个注释@LargeTest和@Runwith这两个注释用于指定TestClass的行为。
2.该类扩展了AcitivtyInstrumentationTestCase2类,其启动活动为MainActivity,在本示例中我们将对其进行测试。
3. @Before和@After是注释,用于指定在每个测试用例之前应执行哪个方法以及在每个测试用例完成后应执行哪个方法。
4.为每个测试用例方法添加@Test批注。
5.在下面的测试案例中,getAcitivity()启动了我们的Main Activity。
6. onView()用于选择要测试的视图,withId()用于定位UI元素,rest用于检查是否显示特定元素。



@RunWith(AndroidJUnit4.class)
@LargeTest
public class 浓咖啡Test1 extends ActivityInstrumentationTestCase2<MainActivity>{

        public 浓咖啡Test1() {
            super(MainActivity.class);
        }

        @Before 
         public void setUp() throws Exception {
            super.setUp();
            injectInstrumentation(InstrumentationRegistry.getInstrumentation());
        }

        @Test 
        public void test1ChatId() {
            getActivity();
            onView(withId(R.id.anuja)).check(matches(isDisplayed()));
        }

        @After        public void tearDown() throws Exception {
            super.tearDown();
        }
}


第二种方法是不使用活动规范->
1. 该类使用两个批注@LargeTest和@Run,这两个批注 批注用于指定我们的TestClass的行为。
2.下面的代码行用于按特定顺序运行测试用例。
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
3. @Before和@After是注释,用于指定哪种方法 应该在每个测试用例之前执行,应该使用哪种方法 在完成每个测试用例之后执行。
4.onView()用于选择要测试的视图,withId()用于 找到UI元素,其余的用于检查特定的 元素是否显示。


@RunWith(AndroidJUnit4.class)
@LargeTest
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class 浓咖啡Test2 { 

@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
        MainActivity.class); 


 @Before 
 public void setUp() throws Exception {
        //Before Test case execution 
}

    @Test     
      public void test1ChatId() {
        onView(withId(R.id.anuja)).check(matches(isDisplayed()));
    }

    @After 
public void tearDown() throws Exception {
    //After Test case Execution
    }
}


如何运行这些测试用例->
1.单击“构建变体”。
2.选择Android Instrumentation Tests。
第一次浓咖啡测试
第一次浓咖啡测试

3.选择类名称或测试用例名称-> right click ->
写& Run Espresso Test
跑步


笔记 - 
在下面的代码中添加defaultConfig b在运行测试用例之前-

testInstrumentationRunner "和roid.support.test.runner.AndroidJUnitRunner"


我希望这篇文章可以帮助您找到适合您的测试服的代码:)
请在下面的评论部分中分享您的反馈,并按照质量检查自动化以获取最新的帖子更新。HappyTesting :-)

2016年1月19日,星期二

如何在何处以及在Android Studio中添加测试用例?

在Android Studio中编写与项目结构和层次结构相关的测试文件夹有一些特定的规则。在使用Espresso,Robotium和UIautomator的情况下,我们需要编写检测测试用例,这些用例将写在项目的androidTest文件夹中。让我们看看如何创建该文件夹。

1.在android studio中,重要的是在src / androdTest / java文件夹中编写已测试的功能测试用例,并在src / Test / java中编写单元测试。

2.现在我们需要创建 和roidTest文件夹。右键单击 src-> New ->Folder ->Java folder


3.单击更改文件夹位置并添加位置 src / androidTest / Java

4. 右键单击Java-> New ->包和输入包名称


5.创建包后,右键单击 package name -> New -> Java Class 给出类名TestClass  and click on 好的。


创建TestClass之后,您就可以开始编写测试用例了。

如何设置Espresso进行功能测试?



您正在阅读这篇文章,因为您想和Espresso一起去 功能测试的框架。该框架非常灵活且 让您轻松,准确地测试不同的功能。 我们到了重点d 开始使用espresso配置项目。
到 在您的Android项目中配置Espresso非常简单, 快的。在本文结束时,您将可以开始编写您的 测试。如果您遇到任何问题,请在此处发布。

浓咖啡视频教程简介-


浓咖啡设置分步视频教程-


1.Espresso在构建您的应用程序的同一项目中工作,因此第一步是打开您的项目。

2.打开文件 build.gradle 里面- 项目 -> App -> build.gradle 并在下面的代码行中添加 at the end.


 

dependencies {
    androidTestCompile 'com.和roid.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.和roid.support', module: 'support-annotations'
    }
    androidTestCompile 'com.和roid.support.test:runner:0.5',{
        exclude group: 'com.和roid.support', module: 'support-annotations'
    }
}和roid {
    defaultConfig {
        testInstrumentationRunner '和roid.support.test.runner.AndroidJUnitRunner'
    }
}

3.然后单击sync gradle,一旦构建成功,就可以编写Espresso测试用例了。 

笔记 - 
在下面的代码中添加defaultConfig b在运行测试用例之前-

testInstrumentationRunner "和roid.support.test.runner.AndroidJUnitRunner"
 
笔记 - Learn More About Android Studio HERE 
 
 
我希望这篇文章可以帮助您找到适合您的测试服的代码:)
请在下面的评论部分中分享您的反馈,并按照质量检查自动化以获取最新的帖子更新。HappyTesting :-)
 

使用Android Studio设置Appium



鸦片 是广泛用于移动应用程序的自动化工具,本文 将帮助您使用Android Studio设置Appium,包括编写 然后使用Appium执行您的第一个测试用例。 android studio,那么这篇文章肯定会帮助您 设置Appium。我希望这篇文章可以帮助您设置Appium测试环境 迅速地。如果您遇到任何问题,请发表您的问题。让我们开始学习如何在Android Studio中安装Appium和进行配置。这是在Android Studio中设置Appium的非常简单的分步教程。





  1. 下载 -
    1. Android Studio
    2. Java的Appium Jar文件
    3. 最新的Appium客户端库
    4. 鸦片服务器 
    5. 安装Java
  2. 安装Android Studio请按照链接中给出的步骤在Windows机器上逐步安装android studio 点击这里
  3. 安装android studio后,请打开android studio并创建一个新项目- 如何创建Android项目?
4. 将下载的Appium罐子添加到您的项目中-点击项目-> click on app->复制lib中的所有jar。选择复制的罐子,除了 Selenium,Java客户端和Junit Jar,然后右键单击它,然后单击 "Add as Library".

5.在应用程序中单击build.gradle,您将看到所有添加的库,如下面的屏幕快照所示添加junit:4.12.Sync项目或重新生成项目。它应该显示“建立成功的消息”

鸦片设置的Build.gradle代码
鸦片 Gradle依赖性


6. 现在您可以编写第一个测试用例了-右键单击 包,然后单击“创建Java类”。复制给定的测试用例样本。

7.运行测试用例-

  • 点击构建变体
  • 选择单元测试
  • 开始 具有特定端口“ 4444”的appium服务器点击这里
  • 使用USB调试连接设备或启动仿真器。
  • 右键单击测试类,然后单击“运行”
 

import java.net.MalformedURLException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;



public class WaitTests {

 WebDriver driver;

 @Before
 public void setUp() throws MalformedURLException {
  // Created object of DesiredCapabilities class.
  DesiredCapabilities capabilities = new DesiredCapabilities();

  // Set android deviceName desired capability. Set your device name.
  capabilities.setCapability("deviceName", "XT1562");

  // Set BROWSER_NAME desired capability. It's Android in our case here.
  capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");

  // Set android VERSION desired capability. Set your mobile device's OS version.
  capabilities.setCapability(CapabilityType.VERSION, "6.0.1");

  // Set android platformName desired capability. It's Android in our case here.
  capabilities.setCapability("platformName", "Android");

  // Set android appPackage desired capability. It is
  // com.android.calculator2 for calculator application.
  // Set your application's appPackage if you are using any other app.
  capabilities.setCapability("appPackage", "com.android.calculator2");

  // Set android appActivity desired capability. It is
  // com.android.calculator2.Calculator for calculator application.
  // Set your application's appPackage if you are using any other app.
  capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");

  // Created object of RemoteWebDriver will all set capabilities.
  // Set appium server address and port number in URL string.
  // It will launch calculator app in android device.
  driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
  driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
  
  
 }

 @Test
 public void testFirstCalculator() {
  
 
  // Click on DELETE/CLR button to clear result text box before running test.
  driver.findElements(By.xpath("//android.widget.Button")).get(0).click();

  // Click on number 2 button.
  driver.findElement(By.name("7")).click();

 driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); 
}

@After
 public void End() {
  driver.quit();
 }
}

 
 
Once your Setup is Complete Learn more About Appium with this simple Step by Step
APPIUM TUTORIAL 
笔记 - Learn More About Android Studio Basic Features and Functionality HERE .
 
If you want to learn more about Testing with Emulators and Real Devices do refer this article -

Real Device vs Emulator Testing Ultimate Showdown

Please share your feedback in comments section below and join QA-Automated 
for latest post updates.Happy Testing !!!



开始ing Appium Server in Windows

大家好,这是一篇简单的文章,它将帮助您安装Appium for Windows,并指导您如何启动Appium Server。现在我们在脑海中有一个疑问,为什么我们需要Appium Server?要了解这一点,让我们看看Appium是如何工作的
  1. 鸦片客户端(例如-Java)与Appium Server连接并通过以下方式进行通信 JSON Wire通讯协定
  2. 然后,Appium Server创建一个 会议 为客户端,并检查客户端所需的功能,以及 与相应的供应商提供的框架(例如 Selendroid / UIAutomator
  3. 供应商提供的API随后将与 bootstrap.jar 在Emulator / Real设备中运行以执行客户端操作
  4. Bootstrap.jar充当 TCP协议 服务器对我们的被测应用程序执行操作

 

如何安装Appium并启动服务器-

  1.  从Windows下载Appium for Windows 这里
  2. 双击.exe并安装Appium。 
  3. 鸦片服务器安装
    鸦片服务器安装
  4. 单击图标启动。
    Windows中的Appium服务器
    Windows中的Appium服务器
  5. 单击设置以更改端口号。
    鸦片服务器设置
    鸦片服务器设置
  6.  单击播放按钮。 
    鸦片服务器
    鸦片服务器

现在,您的appium服务器已启动并正在运行,您可以插入设备并开始编写执行中的Appium测试用例。

如果对此有任何疑问或有任何反馈,请发表评论。如果觉得这很有用,请与您的朋友和同事分享。


配置Appium服务器- 

鸦片服务器将使用默认配置参数启动。我们可以选择根据我们的要求自定义服务器设置。如果在连接服务器时遇到任何问题或异常,则需要首先查看服务器设置以调试问题。
让我们研究一下如何修改appium服务器设置。


Android设置 :

  • 点击 Android设置 如下图所示。
  • 选择 平台名称 = Android
  • 选择 自动化名称 = Appium
  • 选择 平台版本 =您的android设备的操作系统版本。 
常规设置

  • 点击 常规设置 如下图所示。
  • 记下服务器地址和邮编。在Appium软件自动化测试脚本创建期间,我们需要它。 服务器地址 是:127.0.0.1和 端口号 is : 4723.

嗨,我希望本教程可以帮助您了解为什么我们需要appium服务器,appium服务器如何工作以及如何启动appium服务器?请在下面的评论部分中分享您的反馈意见,并加入质量检查自动化,以获取最新的帖子更新。祝您测试愉快!