APP自动化测试(一)-appium

一:APP自动化测试框架比较

APP自动化测试(一)-appium_第1张图片

跨应用:比如在测试抖音的同时还想测试微信

Hybrid:混合应用程序

 

 

二:Appium自动化测试框架

官网:http://appium.io/

优点:

1:跨架构、支持原生、混合以及web移动应用

2:跨平台,Android&IOS

3:跨语言,Java、Python、Ruby

 

下载安装:

APP自动化测试(一)-appium_第2张图片

APP自动化测试(一)-appium_第3张图片

这里我是通过翻qiang下载的

安装后打开就是这玩意

APP自动化测试(一)-appium_第4张图片

当然下载了这个还不行,还要去配置JDK,eclipse,模拟器,Android SDK(我直接用android studio)

APP自动化测试(一)-appium_第5张图片

 

这里可能会存在夜神内置的adb和SDK的adb冲突,可以把SDK的adb替换到夜神中(我没弄这个)

复制SDK里面的,改名字成这个,然后黏贴进去

APP自动化测试(一)-appium_第6张图片

 

 

 

Appium  Client下载:https://github.com/appium/java-client

 

 

三:Appium组件

Appium Server:实际上是一个web接口服务器,使用node.js实现

Appium GUI:Appium Desktop的前身,目前已经停止维护,封装的Appium Server是1.4.16(不推荐使用)

Appium Desktop:内嵌Appium Server,提供了GUI界面(就是我上面下载那个,它集成了node.js,所以不用安装node.js)

Appium  Client:客户端向Appium Server发起请求,可以使用不同语言实现,如Java

 

 

 

四:基本配置

简单了解一下

simple配置(简单)

APP自动化测试(一)-appium_第7张图片

advanced配置(高级)

APP自动化测试(一)-appium_第8张图片

APP自动化测试(一)-appium_第9张图片

APP自动化测试(一)-appium_第10张图片

 

presets(预置配置)

我这配置一个

APP自动化测试(一)-appium_第11张图片

这里对安卓测试

APP自动化测试(一)-appium_第12张图片

APP自动化测试(一)-appium_第13张图片

 

 

运行,因为appium是工作在本地下的,所以为127.0.0.1,默认监听端口默认就行

APP自动化测试(一)-appium_第14张图片

APP自动化测试(一)-appium_第15张图片

最后一行说明appium工作已经开启

APP自动化测试(一)-appium_第16张图片

 

 

 

 

五:开启探测会话

APP自动化测试(一)-appium_第17张图片

这是启动测试app要的一些信息,appium主要用来探测app的元素信息

我这用的是夜神模拟器

deviceName   127.0.0.1:62001  

所以这样填,用来找到测试的设备

APP自动化测试(一)-appium_第18张图片

确认测试的平台,比如安卓或者IOS

APP自动化测试(一)-appium_第19张图片

platformName   Android

确定测试的app,也就是包

怎么查询?可以通过这种方式,进入sdk里面,路径(我的是Android studio):E:\android-studio-bundle-145.3276617-windows\sdk\build-tools\24.0.2

APP自动化测试(一)-appium_第20张图片

选中上面的地址,输入cmd

APP自动化测试(一)-appium_第21张图片

输入这些内容后,比如我是要测试抖音,找到apk拉进去就行了,它会帮你填充apk的路径,回车

这个就是包名字(其实也可以通过之前adb那种方式去查)

APP自动化测试(一)-appium_第22张图片

APP自动化测试(一)-appium_第23张图片

appPackage    com.ss.android.ugc.aweme

启动应用程序,要加这个app的入口,在上面那里也可以找到,不过我看抖音的时候没看到

像微信可以看到

也可以用这种方式,模拟器启动这个app,命令行输入adb shell dumpsys window w | findstr \/ | findstr name=(方法很多,可以去百度看看)

appActivity     com.ss.android.ugc.aweme.splash.SplashActivity

APP自动化测试(一)-appium_第24张图片

看一下,没问题就保存,下次就不用再次输入

APP自动化测试(一)-appium_第25张图片

这里可以看到

APP自动化测试(一)-appium_第26张图片

APP自动化测试(一)-appium_第27张图片

然后报错了,大概的意思是说环境变量有问题

APP自动化测试(一)-appium_第28张图片

看了下日志:

APP自动化测试(一)-appium_第29张图片

因为我这是使用android studio的sdk,之前在配置adb的时候也弄了这个

E:\android-studio-bundle-145.3276617-windows\sdk\platform-tools

在这里要重新改造一下

在系统变量新增一个环境变量,就是要这个名字,让appium能识别(如果java识别不了,也可以改成JAVA_HOME这个名字)

APP自动化测试(一)-appium_第30张图片

在path加上这两个

%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

在这里我怕adb不行了,测试一下有没有问题,发现没问题

重启一下appium,发现识别成功

APP自动化测试(一)-appium_第31张图片

 

回到之前运行,发现又报错了

看日志出现这个

error: pkg: /data/local/tmp/appium_cache/7280876e456c1bb793964772b5bcb2ac96ecfcc4.apk

Trying to proxy a session command without session id

Could not find 'apksigner.jar'

APP自动化测试(一)-appium_第32张图片

APP自动化测试(一)-appium_第33张图片

安装这个后,我发现这个问题没了:Could not find 'apksigner.jar'

APP自动化测试(一)-appium_第34张图片

于是我看最新的日志

[2020-06-17 03:18:09][ADB] Install command stdout: pkg: /data/local/tmp/appium_cache/7280876e456c1bb793964772b5bcb2ac96ecfcc4.apk
[2020-06-17 03:18:09][ADB] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]


[2020-06-17 03:18:09][UiAutomator2] Did not get confirmation UiAutomator2 deleteSession worked; Error was: UnknownError: An unknown server-side error occurred while processing the command. Original error: Trying to proxy a session command without session id
[2020-06-17 03:18:09][ADB] Running 'E:\android-studio-bundle-145.3276617-windows\sdk\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62001 shell am force-stop com.tencent.mm'


Encountered internal error running command: Error: pkg: /data/local/tmp/appium_cache/7280876e456c1bb793964772b5bcb2ac96ecfcc4.apk
[2020-06-17 03:18:10][MJSONWP] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]


想了一下,跑去试试是不是SDK的问题,于是我更新了这两个

APP自动化测试(一)-appium_第35张图片

后面发现同样的问题还是存在,于是我查了很久,忽然想到我这个appium软件是最新版本的,于是我想是不是有变动

于是我就这个方向去查(太难了,英文不过关的我),终于被我查到了问题

我夜神模拟器的安卓版本是5.1.1,一般是使用UIAutomator1的,比较新的一些安卓系统可能使用的是UIAutomator2,我想是不是1.7以后版本的appium默认是使用了UIAutomator2,于是我加了这个配置

APP自动化测试(一)-appium_第36张图片

automationName    UiAutomator1

 

然后运行,发现报错不一样了,现在是报这个错误

Encountered internal error running command: Error: Could not find package com.tencent.mm on the device

百度翻译了一下,应该是我微信的包没有安装到模拟器上,可以直接拉包进模拟器,就能安装了

但不知道为毛,我的微信安装不了,于是我用adb命令安装,也安装不了

于是算了,装了个抖音去试试,运行是没问题的了(能调起抖音app来运行)

APP自动化测试(一)-appium_第37张图片

看了一下日志也没问题

APP自动化测试(一)-appium_第38张图片

 

 

 

 

 

附加:在踩坑过程中也用了这些去查看,当然也不知道有没有前置作用

(1)安装appium-doctor

它是用来检测环境的,使用 npm --registry http://registry.npm.taobao.org install appium-doctor -g

APP自动化测试(一)-appium_第39张图片

看着好像没问题

APP自动化测试(一)-appium_第40张图片

 

 

 

(2)Python库安装

pip install appium-python-client

APP自动化测试(一)-appium_第41张图片

验证一下

APP自动化测试(一)-appium_第42张图片

也可以直接在pycharm工具里面输入from app(这时候有提示,说明安装成功)

 

你可能感兴趣的:(appium)