我正在使用appium_lib
在iOS和Android中自动执行测试
目前,我正在维护两个套件,一个用于Android,另一个用于iOS。
这个黄瓜中是否有appium_lib gem,以便在单个套件中维护iOS和Android的情况?让appium自动检测连接的设备,并执行相应标记的测试用例?
如果Appium检测到它是iOS,请运行在iOS cucumber -t @ios
下标记的测试用例
我理解env.rb
可以帮助hooks.rb
before do
下if
我可以提供else
和 if $driver.device_is_android? == 'true'
'cucumber -t @Android'
else
'cucumber -t @iOS'
end
条件
adb shell getprop | grep build.version.release
这样的东西?可能吗?我无法在互联网上找到有关自动检测设备操作系统的信息,因此将此问题作为我的想法发布。
我知道我可以使用命令$driver.device_is_android?
读取操作系统的版本,因此想知道除if
现在要运行黄瓜案例,对于iOS和Android,我需要在appium中传递个别功能。有没有办法在else
和<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/collapsing_height"
android:fillViewport="true"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:id="@+id/past_upcoming_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#efeded"
android:fitsSystemWindows="true"
android:orientation="vertical"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<TextView
android:id="@+id/upcoming_heading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:padding="@dimen/spacing_normal_8dp"
android:text="@string/upcoming_appointments"
android:textSize="@dimen/text_size18sp" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/upcoming_heading">
<android.support.v7.widget.RecyclerView
android:id="@+id/upcoming_appointments_recycler_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:orientation="horizontal" />
<TextView
android:id="@+id/no_upcoming_list"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/no_upcoming_appointment"
android:textSize="@dimen/text_size18sp" />
</FrameLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/past_appointments"
android:textSize="@dimen/text_size18sp" />
</RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|enterAlways">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nestedscrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#efeded"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/past_appointments_recycle_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
条件下以编程方式执行此操作?
答案 0 :(得分:0)
我也遇到了这个难题,但我的解决方法有所不同。
在我们的例子中,我们在Appium上使用Cucumber,因此我仅使用代表我的平台的参数来执行它,例如:
黄瓜PLATFORM = iOS
然后在我的env.rb文件中,我得到了一个论点:
@platform = ENV ['PLATFORM']
然后我就用它来获得想要的功能:
n
运行测试时,您始终知道要测试的平台,因此将其作为参数发送是有意义的。