首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否应该为iOS使用一个存储库,并将安卓用于移动自动化(本地应用)?

我是否应该为iOS使用一个存储库,并将安卓用于移动自动化(本地应用)?
EN

Stack Overflow用户
提问于 2019-08-14 06:56:28
回答 2查看 688关注 0票数 0

目前我使用的是Appium,Selenium,Java,TestNG的原生应用程序。我正在为iOS和安卓做自动化,这两个功能是相同的,但元素标识符在iOS和安卓是不同的。所有元素都不具有相同的名称。假设登录按钮元素标识符的形式如下

适用于Android

代码语言:javascript
复制
@AndroidFindBy(id = "com.abc.bot:id/home_screen_sign_in_btn")
    private MobileElement signinbtn;

对于iOS

代码语言:javascript
复制
@FindBy(xpath="//XCUIElementTypeButton[@name='Log In']")
    private WebElement logInButton;

除此之外,我们使用的是CircleCI,对于iOS和Android也有不同的流水线和分支。我的问题是,我应该将iOS和Android放在同一个repo还是不同的分支。有人能解释一下利弊吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-16 15:04:33

您可以坚持使用单一定位器策略,例如XPath Selector,并使用XPath Union operator将两个定位器合并为一个,如下所示:

代码语言:javascript
复制
//XCUIElementTypeButton[@name='Log In'] | //*[@resource-id='com.abc.bot:id/home_screen_sign_in_btn']

更好的方法是将定位器放入.properties文件中,如下所示:

代码语言:javascript
复制
android.signin.button=//*[@resource-id='com.abc.bot:id/home_screen_sign_in_btn']
ios.signin.button=//XCUIElementTypeButton[@name='Log In']

然后通过将platformName Desired Capability与.properties文件中的定位器相结合来查询所需的元素

代码语言:javascript
复制
Properties uiprops = new Properties();
uiprops.load(new FileInputStream(new File("ui.properties")));
String locator = uiprops.get(appiumDriver.get().getCapabilities().getCapability("platformName") + ".signin.button").toString();
票数 1
EN

Stack Overflow用户

发布于 2019-08-16 01:50:00

实际上,我只是为我目前所在的公司设置了所有这些。我假设如果你正在使用appium,selenium,java,testNG,你正在使用eclipse或intelliJ的appium studio插件,如果你不是,你应该会让你的生活变得更容易,但无论如何。我把所有东西都放在一个repo中,原因如下

如果您在一个repo中拥有所有内容,这意味着您必须处理一个单独的项目。更不用说,您可以创建包含来自两个平台的所有测试的xml文件,并且可以同时运行它们。

你不想在每次需要做某件事的时候都切换repos/项目,因为这将是乏味和耗时的,更不用说容易出错了。

我为我的框架所做的是添加了Android页面文件夹和iOS页面文件夹,这样我就可以将它们分开,这与测试一样。这样我就可以在同一地点做我所有的工作,而不会把事情搞乱。如果设置正确,将两个平台都保留在1个repo中真的不会崩溃。

3个xml文件,一个包含所有iOS测试的测试套件,一个包含所有Android测试的测试套件,一个包含这两个测试套件的测试套件,这样您就可以在两个平台上运行所有测试。

我想说,一般来说,1个单一的repo有所有的优点,2个repo有所有的缺点,从仅仅是分散的和无连接的。

更不用说使用一个代码库,所有的东西都来自同一个地方,所以当您启动CI时,将来进行更改将会容易得多,而当您为任何一个平台运行作业时,您唯一的条件就是使用什么xml文件。

如果你想让我更详细,或者只是有问题,请告诉我,我会编辑我的答案,回答你想要我回答的任何问题

PS我所做的一切都是100%正常运行的,真的很顺利

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57486245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档