首页 > 编程知识 正文

app端自动化测试工具,web自动化测试与app自动化测试

时间:2023-05-04 02:51:18 阅读:282899 作者:3382

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

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

Hybrid:混合应用程序

 

 

二:Appium自动化测试框架

官网:http://appium.io/

优点:

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

2:跨平台,Android&IOS

3:跨语言,Java、Python、Ruby

 

下载安装:

这里我是通过翻qiang下载的

安装后打开就是这玩意

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

 

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

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

 

 

 

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配置(简单)

advanced配置(高级)

 

presets(预置配置)

我这配置一个

这里对安卓测试

 

 

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

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

 

 

 

 

五:开启探测会话

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

我这用的是傻傻的毛巾模拟器

deviceName 127.0.0.1:62001

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

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

platformName Android

确定测试的app,也就是包

怎么查询?可以通过这种方式,进入sdk里面,路径(我的是Android studio):E:android-studio-bundle-145.3276617-windowssdkbuild-tools24.0.2

选中上面的地址,输入cmd

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

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

appPackage com.ss.android.ugc.aweme

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

像微信可以看到

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

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

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

这里可以看到

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

看了下日志:

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

E:android-studio-bundle-145.3276617-windowssdkplatform-tools

在这里要重新改造一下

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

在path加上这两个

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

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

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

 

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

看日志出现这个

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

Trying to proxy a session command without session id

Could not find 'apksigner.jar'

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

于是我看最新的日志

[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-windowssdkplatform-toolsadb.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的问题,于是我更新了这两个

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

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

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

automationName UiAutomator1

 

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

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

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

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

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

看了一下日志也没问题

 

 

 

 

 

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

(1)安装appium-doctor

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

看着好像没问题

 

 

 

(2)Python库安装

pip install appium-python-client

验证一下

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

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。