阅读时间: 4 分钟
朋友们好。
欢迎来到我们的appium博客系列。
在上一篇博客中,我们了解了期望的能力,这对appium测试安卓或iOS有很大帮助,了解更多与appium有关的问题,也为了更好地理解期望的能力,这对移动测试至关重要,所以请从这里查看我们以前的博客,但这次我们专注于appium中与安卓有关的高级东西,因为我们知道为了测试iOS,我们需要一个真正的iOS设备,所以我们现在选择安卓机器,但在未来,我们也尝试使用iOS设备。
最初,在这个简短的博客中,我们学习了 "我们如何用DDT自动化安卓应用",正如我们之前讨论的,Appium是一个用于移动测试的自动化测试工具,它有助于在Selenium网络驱动器的帮助下实现自动化测试。它还需要在手机和Appium服务器之间建立连接,帮助建立适当的连接的东西被称为 "欲望****能力",你也可以得到一些高级知识,Appium如何与DDT一起工作,所以首先讨论什么是DDT框架。
数据驱动框架(DDT)
基本上,数据驱动测试是一种软件测试方法,其中测试数据以表格或电子表格格式存储。它允许测试人员输入一个单一的测试脚本,该脚本可以对表格中的所有测试数据执行测试,并期望在同一表格中获得测试输出。因此,设置一个数据源并添加一个excel(.xlsx)文件的输入,然后像这样调用主函数。
ReadData excel = new ReadData("TestDataFile/datadriven.xlsx");
用Appium和IntelliJ设置环境
正如我们之前在我的上一篇博客中所讨论的,我们需要为测试进行适当的设置,你可以在这里获得更多的参考资料
为了进行适当的环境设置,请遵循以下步骤
- 安装Appium服务器(GUI或命令行)。
- 安装nodeJs。
- 设置android home和java home路径
- 安装android studio。
- 从android studio下载android版本和android仿真器。
- 安装IDE(IntelliJ)。
- 在模拟器或真实设备中下载并安装apk info.apk。
- 下载UI automator viewer。
设置你的项目
启动IntelliJ,选择 "文件">"新建">"Maven项目",按照默认设置完成对话框。接下来,让我们添加appium和selenium的依赖。双击pom.xml文件,编辑...块,看起来像这样。
<dependencies>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>5.0.4</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.9.1</version>
</dependency>
编写一个基本设置脚本
在IntelliJ文件资源管理器中,扩展 "src/main/java "并扩展该包。
public class demo1 {
public static void main(String[] args) throws MalformedURLException {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("platformName", "Android");
desiredCapabilities.setCapability("appium:platformVersion", "11.0");
desiredCapabilities.setCapability("appium:deviceName","4.7_WXGA_API_30");
desiredCapabilities.setCapability("appium:automationName", "appium");
desiredCapabilities.setCapability("appium:noRest", true);
desiredCapabilities.setCapability("appium:udid", "emulator-5554");
与特定安卓应用相关的主要期望能力
正如我们上面所讨论的,我们自动化了一个安卓应用,所以每个应用都有不同的appActivity和appPackage,我们在 "app信息 "的帮助下知道这两者,所以在我们的模拟器上首先安装了安卓应用。
cap.setCapability("appPackage","com.android.dialer");
cap.setCapability("appActivity","com.android.dialer.main.impl.MainActivity - Phone");
如何捕获主要的期望能力
在添加了这个欲望能力后,appium就可以在模拟器或真实设备中进行午餐,但在此之前,我们需要添加appium的本地主机端口,并在代码中添加appium-selenium Android驱动。
//localhost where appium server run
URL url= new URL("http://127.0.0.1:4723/wd/hub");
AndroidDriver<WebElement> driver=new AndroidDriver<WebElement>(url,cap);
//after lunching the application it wait so we add below function.
Thread.sleep(5000);
如何访问按钮以及如何捕获它
一半的步骤已经完成,现在需要用可访问性ID来定位模拟器或真实的Android设备中的元素。
我选择了一个电话拨号器作为我们测试的安卓应用。所以我们需要访问并捕获我们应用中的按钮,所以让我们在.xlsx文件中添加特定按钮的资源ID或有时可访问性ID作为外部数据源。为了获得特定按钮的资源ID或其他不同的ID,我们在Gif文件中的帮助下遵循某些步骤。
- Appium检查器
- UI Automator查看器
MobileElement el8 = (MobileElement) driver.findElementByAccessibilityId(excel.getData(0,0,1));
el8.click();
MobileElement el9 = (MobileElement) driver.findElementByAccessibilityId(excel.getData(0,1,0));
el9.click();
MobileElement el10 = (MobileElement) driver.findElementByAccessibilityId(excel.getData(0,1,1));
el10.click();
MobileElement el11 = (MobileElement) driver.findElementByAccessibilityId(excel.getData(0,2,0));
el11.click();
MobileElement el12 = (MobileElement) driver.findElementByAccessibilityId(excel.getData(0,2,1));
el12.click();
System.out.println("Application started........");
前提条件
在运行上述程序之前,我们需要以下东西处于运行状态。
- Appium服务器
- 仿真器或真实的Andriod设备
这篇博客就写到这里,我希望能了解到appium以及我们如何实现安卓设备的自动化,在下一篇博客中,我们将了解更多关于appium的信息,敬请关注。
谢谢你