Java+appium+testNG断言

  • Mac电脑在eclipse自带了testNG,所以在此特别说明下,在Windows电脑系统中使用Java+appium做断言,需要使用第三方插件testNG,所以就要在eclipse安装testNG,安装步骤见eclipse安装testNG
  • 1、首先保证安装了testNG
  • 2、右击项目---->选择testNG--->Convert to testNG
  • 点击后会出现一下的窗口,直接点击下一步 Next >
  • 可以直接点击勾选做出改变,也可以后面做出改变
  • 点击testNG后会多出一个testng.xml
  • testng.xml是testNG的一个核心配置文件
  • 使用testNG需要做初始化操作,和Python里的一样,就是setUp()和tearDown()方法
  • 一下是详细代码

package com.test.firsAppium;
import org.testng.annotations.AfterTest;

import org.testng.annotations.BeforeTest;

import org.testng.annotations.Test;//包名

import java.net.MalformedURLException;import java.net.URL;

//第三方依赖包import org.openqa.selenium.WebElement;

//导入 selenium 包中的WebElement模块

import org.openqa.selenium.remote.DesiredCapabilities;

//导入 selenium 包中的remote.DesiredCapabilities模块
import io.appium.java_client.android.AndroidDriver;

//导入appium 的依赖包 java_client
public class AppuimTest {

// 定义变量属性

androidDriver public static AndroidDriver<WebElement> androidDriver; @BeforeTest //代表着初始化动作

public void setUp() throws MalformedURLException, InterruptedException { // 1、创建配置对象

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();

// 添加配置

// deviceName:可以找到我们测试的设备本地的127.0.0.1:62001,b672fcc5手机链接设备名称,端口好5555

desiredCapabilities.setCapability("deviceName", "b672fcc5:5555");

// platformName:测试平台

Android or IOS desiredCapabilities.setCapability("platformName", "Android"); // 获取包名,找到要测试的

App appPackage desiredCapabilities.setCapability("appPackage", "com.handsgo.jiakao.android");

// automationName: uiautomator2来解决输入框输不了数据的

// 自动化引擎

desiredCapabilities.setCapability("automationName", "uiautomator2");

// appActivity:测试app启动入口

desiredCapabilities.setCapability("appActivity", "com.handsgo.jiakao.android.splash.Login");

// 3、创建驱动 // 传入两个参数 // 第一个参数:appium通信地址 // 第二个参数配置对象

androidDriver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);

// 调用自定义方法 //不需要调用testJiakao();会自带调用 }
@Test //代表的是一个方法

public void testJiakao() throws InterruptedException {

// 设置等待时间 Thread.sleep(10000);

// 点击启动程序会弹出遮罩层让我们选择,点击我知道 androidDriver.findElementById("com.handsgo.jiakao.android:id/permission_btn").click();

// 1、找到定位城市文本,并且点击,(使用SDK自带的定位元素作为辅助功能定位元素的识别方式) androidDriver.findElementById("com.handsgo.jiakao.android:id/select_text").click();

// 2、找到城市搜索框,并输入 "长沙" androidDriver.findElementById("com.handsgo.jiakao.android:id/edt_search_q").sendKeys("长沙");

// 3、找到搜索结果中的"长沙",并且点击 androidDriver.findElementById("com.handsgo.jiakao.android:id/item_title").click();

// 4、点击长沙后回到首页,点击小车

Thread.sleep(1000); androidDriver.findElementById("com.handsgo.jiakao.android:id/item_car").click();

// 5、找到"下一步"并且点击 androidDriver.findElementById("com.handsgo.jiakao.android:id/ok_button").click();

// 跳转页面可能需要等待,所以设置等待时间

Thread.sleep(2000);

// 6、点击男士 androidDriver.findElementById("com.handsgo.jiakao.android:id/gender_male_btn").click();

// 7、点击未报名驾校 androidDriver.findElementById("com.handsgo.jiakao.android:id/jiakao_not_sign_up_btn").click();

// 8、点击纯为拿本 androidDriver.findElementById("com.handsgo.jiakao.android:id/naben_btn").click();

// 9、点击下一步 androidDriver.findElementById("com.handsgo.jiakao.android:id/btn_next").click(); }

//初始化完成后,我们还需要一个销毁动作

@AfterTest

public void tearDown(){

//当测试用例执行完毕后,我们需要销毁驱动

androidDriver.quit(); }
}

  • 选择右击执行代码testNG运行
  • 上述代码执运行结果如下,没带断言
  • 断言就是测试脚本的一个最重要的部分,没有断言就相当于程序没有灵魂,下面是加了简单断言的代码:

package com.test.firsAppium;
import org.testng.Assert;import org.testng.annotations.AfterTest;import org.testng.annotations.BeforeTest;import org.testng.annotations.Test;//包名import java.net.MalformedURLException;import java.net.URL;
import org.aspectj.lang.annotation.After;//第三方依赖包import org.openqa.selenium.WebElement;//导入 selenium 包中的WebElement模块import org.openqa.selenium.remote.DesiredCapabilities;//导入 selenium 包中的remote.DesiredCapabilities模块
import io.appium.java_client.android.AndroidDriver;//导入appium 的依赖包 java_client
public class AppuimTest { // 定义变量属性 androidDriver public static AndroidDriver<WebElement> androidDriver;
@BeforeTest // 代表着初始化动作 public void setUp() throws MalformedURLException, InterruptedException { // 1、创建配置对象 DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); // 添加配置 // deviceName:可以找到我们测试的设备本地的127.0.0.1:62001,b672fcc5手机链接设备名称,端口好5555// desiredCapabilities.setCapability("deviceName", "b672fcc5:5555"); desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001"); // platformName:测试平台Android or IOS desiredCapabilities.setCapability("platformName", "Android"); // 获取包名,找到要测试的App appPackage desiredCapabilities.setCapability("appPackage", "com.handsgo.jiakao.android"); // automationName: uiautomator2来解决输入框输不了数据的 // 自动化引擎 desiredCapabilities.setCapability("automationName", "uiautomator2"); // appActivity:测试app启动入口 desiredCapabilities.setCapability("appActivity", "com.handsgo.jiakao.android.splash.Login"); // 3、创建驱动 // 传入两个参数 // 第一个参数:appium通信地址 // 第二个参数配置对象 androidDriver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities); // 调用自定义方法 // 不需要调用testJiakao();会自带调用 }
@Test // 代表的是一个方法 public void testJiakao() throws InterruptedException { // 设置等待时间 Thread.sleep(10000); // 点击启动程序会弹出遮罩层让我们选择,点击我知道 androidDriver.findElementById("com.handsgo.jiakao.android:id/btn_agree").click(); Thread.sleep(10000); // 1、找到定位城市文本,并且点击,(使用SDK自带的定位元素作为辅助功能定位元素的识别方式) androidDriver.findElementById("com.handsgo.jiakao.android:id/cityTv").click(); // 2、找到城市搜索框,并输入 "长沙" Thread.sleep(10000); androidDriver.findElementById("com.handsgo.jiakao.android:id/edt_search_q").sendKeys("长沙"); // 3、找到搜索结果中的"长沙",并且点击 Thread.sleep(10000); androidDriver.findElementById("com.handsgo.jiakao.android:id/item_title").click(); // 4、点击长沙后回到首页,点击小车 Thread.sleep(1000); androidDriver.findElementById("com.handsgo.jiakao.android:id/itemCar").click(); // 5、找到"下一步"并且点击// Thread.sleep(1000);// androidDriver.findElementById("com.handsgo.jiakao.android:id/ok_button").click(); // 跳转页面可能需要等待,所以设置等待时间 //Thread.sleep(1000); // 6、点击男士 androidDriver.findElementById("com.handsgo.jiakao.android:id/maleTv").click(); // 7、点击未报名驾校 androidDriver.findElementById("com.handsgo.jiakao.android:id/unRegisterTv").click(); // 8、点击纯为拿本 //androidDriver.findElementById("com.handsgo.jiakao.android:id/naben_btn").click(); // 9、点击下一步 androidDriver.findElementById("com.handsgo.jiakao.android:id/okBtn").click(); // 点击下一步时可能需要时间等待加载 Thread.sleep(1000); // 10、断言 String expected = "cn.mucang.android.mars.student.refactor.business.inquiry.activity.InquiryActivity"; String actual = androidDriver.currentActivity(); // testNG断言 Thread.sleep(1000); Assert.assertEquals(actual, expected);
} // 初始化完成后,我们还需要一个销毁动作 @AfterTest public void tearDown() { // 当测试用例执行完毕后,我们需要销毁驱动 androidDriver.quit(); }
}

  • 断言
  • 运行结果为:
  • 查看断言是否是正确的

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值