自动化测试---移动端自动化测试项目搭建(Appium+IDEA)

自动化测试---移动端自动化测试项目搭建(Appium+IDEA)

模拟器+Appium操作

首先打开黑窗口
输入命令
在这里插入图片描述
注:具体命令可看上一篇博客

在这里插入图片描述
第一步从机器人打开然后点击choose把想测试的应用导进去(选择路径)
注:但是不推荐使用这种方式 因为可能会出现一些问题
注2:我们要一直把appium框架开启 不能关闭可以小化但是不要叉掉

在这里插入图片描述
注3:上图的aapt dump badging d:\android\yanxuan-aos_out_109.apk里面的\yanxuan-aos_out_109.apk是我这次要测的一个严选APP如果你们要测试其他的APP改一下路径就好了

1、启动idea
新建工程,file–new–project
选择maven框架

2、projiect sdk 选择java jdk的安装;点击new从安装路径中选择; 例如:我的是安装路径为C:\Program
Files\Java\jre1.8.0_171

3、groupid 例如:com.zking 项目包名 artifactid 例如:appiumtest01 工程名字
version 使用默认的

确定后在当前窗口显示,还是新开窗口;开启后右下角会显示一个连接,点击第二连接;导入依赖的包;

4、在mpom.xml中添加appium java_client jar包

<dependencies>
          <dependency>
              <groupId>io.appium</groupId>
              <artifactId>java-client</artifactId>
              <version>4.1.2</version>
          </dependency> </dependencies>

添加完成后在external libaries检查一下是否添加成功 作用:测试页面元素的操作,接口及方法都是从该jar包中获取的

5、添加testing框架 在中添加testng框架

org.testng
testng
6.9.10
添加完成后在external libaries检查一下是否添加成功 作用:用来做测试的优先级,调试、验证等需要用该框架

6、了解SDK–tool ddms:启动android调试工具 hierarchyviewer:元素识别工具
uiautomatorviewer:元素识别工具 monkeyrunner:ui自动化测试工具 mksdcard:模拟器SD映像的创建工具
emulator: SDK模拟器主程序 traceview:android平台调试工具

7、使用元素定位工具uiautomator

8、什么是package package 包的意思。安卓系统的程序是已apk作为扩展名的,.apk就是 android
package的简写,package也就是这个app的唯一标识,其实这里的package和java程序中的包一个意思。一般去测试某个程序,都是从这个程序的package入手的,测试初始的代码都会指定app的package
比如:capabilities.setCapability(“appPackage”,“com.android.androidui”)
这就告诉appium要测试的app是什么

什么是Activity? Activity
活动;活动是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中可以包含零个或多个活动。通俗讲就是用户看到的界面就是Activity。
标识:com.android.androidui.Activity,测试初始化代码是这样写capabilities.setCapability(“appActivity”,“com.android.androidui.MainActivity”);

四种布局 布局–布局–控件 布局–控件

LinarLayout:会线性布局,一种非常常用的布局;这个布局会将它所包含的控件在线性方向上依次排列。
RelativeLayout:相对布局,也是比较常见的布局,相比较LinarLayout显得更加随意一些,它可以通过相对定位的方式让控件出现在布局的任务位置。
FrameLayout 相比较前面两种这种比较简单,应用常见少,没有任何定位方式,所有的控件都会摆放在布局的左上角。 ListView
是android最常见的控件之一,界面的收缩、展开

控件 TextView --文本域 Button—按钮
EditText–是程序用于和用户进行交互的另一种重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。比如登录页面:用户名/密码输入框
Alert Toast Bar Webview

9、启动appium

程序设置: 设置: appium的端口使用4723 建议不去修改,将选项的√去掉 开发者设置 帮助

10、编写用例 用脚本编写连接appium与模拟器连接 用脚本检查服务是否连接: adb devices 三种方式查看包名、activity
1、通过查看日志 获取包名及activity:adb logcat

2、直接使用在当前窗口查看包名及activity adb shell dumpsys window |findstr
mCurrentFocus 3、使用aapt 首先进入到本机存放的apk 如我的存放在d盘 android文件夹下 在cmd中进入D盘
使用命令 d: 在进入android文件夹 使用命令 cd android 然后再执行命令 aapt dump badging d:\android\yanxuan-aos_out_109.apk

IDEA项目搭建

首先把你的JDK导进来
在这里插入图片描述
我的是在下图的路径里面
在这里插入图片描述
导进去之后就什么都不用搞直接点击下一步
在这里插入图片描述
写好包名和项目名之后点击下一步 下一步它会帮我们把我们的项目名和路径自动填好
在这里插入图片描述
然后点击finish完成

在这里插入图片描述
然后在pom文件点击我框出来的自动加载常用的包

再在pom文件里面加下图代码进行导包 没报错的话就看看左边我标起来的地方有没有把包导进去
在这里插入图片描述

 <dependencies>
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.10</version>
        </dependency>

然后开始新建项目
在这里插入图片描述
建好了之后开始写测试代码
在这里插入图片描述

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeClass;

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

/**
 * @author 人间香奈儿
 * @site www.huangjie.com
 * @company 公司
 * @create Y E A R − {YEAR}-YEAR−{MONTH}-06 14:39
 */
public class AppiumTests {
    
    
    public AppiumDriver driver;

    @BeforeClass
    //放appium框架配置
    public void AppTest()throws Exception{
    
    
        //实例化一个类,用作appium参数连接
        DesiredCapabilities cap= new DesiredCapabilities();
        //设置一个android类型的测试项目
        cap.setCapability("platforName","Android");
        //设置模拟器的连接地址
        cap.setCapability("deviceName", "127.0.0.1:62001");
        //测试机的版本
        cap.setCapability("platformVersion", "4.4.2");
        //设置键盘的中英文输入
        cap.setCapability("unicodeKeyboard", "true");
        //恢复键盘设置
        cap.setCapability("resetKeyboard", "true");
        //设置被测程序包
        cap.setCapability("appPackage", "com.netease.yanxuan");
        //设置被测程序的活动
        cap.setCapability("appActivity", "com.netease.yanxuan.module.splash.SplashActivity");
        //连接appium服务
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),cap);
        //设置等待时间;当网络慢的时候可等待加载时间
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    }
}

注:上面写代码的时候有一个设置被测程序的活动那一行代码 它后面的value是可以改的 你测什么软件就可以写什么软件的地址至于怎么看可以在黑窗口查看如下图
在这里插入图片描述
然后我们选择就开始写测试脚本

打开我们下载的SDK文件夹
在这里插入图片描述
然后等一下下会进入下面的页面 然后点击我标出来的
在这里插入图片描述

会出现下面的画面 和我们打开的模拟器是一个画面
在这里插入图片描述
然后我重新打开了严选的APP选择我们测试APP里面的分类
在这里插入图片描述
把我标出来的那个ID复制一下然后在idea里面写代码
在这里插入图片描述

  @Test
    public void test01(){
    
    
     driver.findElementById("com.netease.yanxuan:id/txt_mainpage_tab_title").click();
    }

然后执行 只要执行通过就可以了
**注:一定要把appium开启哈下图框出来的那里 不然会报错 **
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_47906344/article/details/114434660