落花踏尽游何处,笑入胡姬酒肆中。这篇文章主要讲述多测师讲解 app---面试课程之复习(003)---高级讲师肖sir相关的知识,希望能为你提供帮助。
https://blog.csdn.net/duoluo9/article/details/77053815 详细操作
https://download.csdn.net/download/h514476785j/9505408 多方面资料
安卓测试和web端测试的区别?
一、android自动化测试基础知识注意分三大块:
1、框架选取
2、应用场景
性能测试:关键路径的性能测试
稳定性测试
功能测试:常用核心功能点测试
兼容性测试
接口测试
单元测试
线上监控测试
3、总结
二、领域
可测对象
原生应用APP、混合应用APP、移动Web App
APP运行环境:真机、模拟器
测试对象App运行平台
ios、Android(目前这两种是市场主流);Windows、FirefoxOS。
测试程序运行平台支持
Windows、Linux、Mac OS;
支持的测试语言
python、java、ruby、php、js、C#;主流是python;
二、常见的app测试工具(https://www.cnblogs.com/liyuanhong/articles/4887914.html)
monkey
robotium
uiautomator
appium
athrum(同时支持ios和Android)
我们主讲appium框架
Appium简介
开源、跨平台、多语言支持的移动应用自动化工具
1、appium的原理:
https://blog.csdn.net/zjnuwsf/article/details/76685660
1.appium是c/s模式的
2.appium是基于webdriver协议添加对移动设备自动化api扩展而成的,所以具有和webdriver一样的特性
appium有客户端和服务器两部分组成,客户端与服务器端通过json wire protocol进行通信
http://blog.csdn.net/jffhy2017/article/details/69220719
2、appium的优缺点:
优点:
支持多种应用程序测试
被测试的应用程序不需要特殊编译
脚本不限制语言和工具
支持应用之间的跳转
是一个跨平台的测试框架,可以使用同一个api开发出在android和ios上都可以运行
缺点:
该工具必须连接电脑才能实施自动化测试,遇到脱机执行的场景就不能满足需求
该工具只能用于UI的自动化测试,在很多情况下测试验证只能通过界面来进行
三、环境搭建
1、Android自动化环境搭建所需要的包:
android-sdk
appium(版本视情况而定)
pip install Appium-Python-Client
jdk
python
2、环境原理:(在这里需要手动画并且引入Android_sdk)
https://blog.csdn.net/jffhy2017/article/details/69220719
这个server的主要功能:监听一个端口,然后接收由client发送来的命令(command)。解析这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给server, server再把执行结果返回给client。
问题:什么是Android_sdk?
SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
SDK:
SDK (Software Development Kit)翻译成中文就是"软体开发工具组"
是用来帮一个 产品 或 平台 开发应用程式的工具组,由产品的厂商提供给开发者使用的。
通常是 某一家厂商 针对某一 平台 或 系统 或 硬体 所发布出来用以开发应用程式的工具组,在这个工具包里面,可能包含了各式各样的开发工具,模拟器等。给 Android平台 使用的 Android SDK 就是用来开发 Android系统上面的应用程式。
SDK下包的说明:
1:add-ons:Android开发需要的第三方文件和软件库
2:docs:Android的文档。包括开发指南、API参考、资源等
3:extras:扩展的附加包
4:platforms:你安装下载的所有Android平台,分版本存放
5:platform-tools:平台相关的工具
6:samples:所有的样例程序
7:system-images:系统使用的图片
8:temp:临时操作或缓存的目录
9:tools:应用Android平台进行开发所需要的一些开发工具
文章图片
appium针对android的自动化原理 1.测试电脑client端是test script也就是webdriver测试脚本 2.server是appium在服务端开启的(默认端口是4723),appium server接受client发送的请求,解析请求内容,调用对应的框架响应操作。 3.appium server把请求转发给中间件Bootstrap.jar,Bootstrap.jar安装在设备上监听4723端口 并接收appium的命令,再调用UiAutomator的命令执行。 4.Bootstrap把执行的结果返回给appium server,appium server再把结果返回给appium client。 appium原理总结 appium client执行脚本,appium server把请求转发到bootstrap.js或者是bootstrap.jar然后再由bootstrap驱动UiAutomation或者UiAutomator去设备上完成具体的命令操作。 再把执行结果通过bootstrap.js或者是bootstrap.jar返回给appium server ,再由appium server发送给appium client。 注意:Bootstrap:可以理解为是一个框架
文章图片
3、常见adb指令(挑重点演示) adb命令模式: adb工具用法(占用端口号为:5037): app封装.noteadb devices 列出当前所有可连设备 adb get-state获取设备状态(device(连接正常),offline(连接异常),unknown(未连接)) adb kill-server(关闭adb服务) , adb start-server(启动adb服务) adb shell进入linux adb logcat(显示安卓系统日志) adb install(安装应用)带参数-r表示覆盖安装,后面接APK包名称adb install baiduwangpan_589.apk adb uninstall(卸载应用)带参数-k表示卸载后保留数据和缓存,后面接包路径adb uninstall com.baidu.netdisk adb reboot(重启手机) adb reboot-bootloader(重启手机进入fastboot模式) adb recovery(重启手机进入刷机模式) adb pull /sdcard/xingyongbao.apk:将手机(模拟器)中的文件发送到本地,存放路径就是你的当前dos路径 adb push xx.apk /sdcard/将本地文件拷贝到模拟器和手机中 注意:在卸载包时其包名与安装的报名不一样,怎么获取安装后的包名 第一步:在dos窗口输入:adb shell 第二步:shell中输入以下指令获取包名
文章图片
第三步:找到安装的包名:
文章图片
第四步:输入exit指令退出shell 第五步:卸载,输入输入以下指令
文章图片
adb shell命令模式:(了解即可) pm install(安装应用)同上 pm uninstall(卸载应用)同上 pm list packages(列出所有已安装包) 4、环境搭建过程:见详细搭建文档 appium工具设置 点击设置图标 1、 可以对里边的server地址端口进行修改。 2、 当session不一致时实行覆盖。 3、 输出log文件方便查看执行的过程及结果。
文章图片
版本号一致检查 Android SDK里的版本号获取,APPNIUM里的安卓设置版本号,还有脚本里的平台版本号,需要都保持一致。
文章图片
文章图片
文章图片
【多测师讲解 app---面试课程之复习(003)---高级讲师肖sir】
文章图片
常见问题: 1.Adb deviecs问答 通过DOS命令,执行查看连接手机情况,出现如下异常 C:\\Users\\xu.lei> adb devices List of devices attached adb server version (31) doesn\'t match this client (39); killing... error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 (10048) This application has requested the Runtime to terminate it in an unusual way. Please contact the application\'s support team for more information. could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon 原因分析: 这个是socket 的端口被占用了,我这里是因为360手机助手占用了这个端口,所以其他的就不能够用了。 查看端口被谁占用的方法有两个 第1个方法是采用DOS命令, netstat –nao 第2个方法是windows系统自带的"资源管理器"能查看端口使用情况,具体操作方法如下: (1)如下图红色箭头标记,鼠标右键单击任务栏空白处,在弹出的右键菜单里选择"任务管理器": (2)如下图红色圆圈标记,在"任务管理器"里,切换到"性能"选项卡,再点击"打开资源管理器": (3)在"资源管理器"里,点击"网络",在"网络活动的进程"中勾选需要查询的进程,这时最下面一栏"侦听端口"就会显示这个进程(软件)所使用的端口了: 解决办法: 卸载了360的手机助手就可以了, 首先 打开360安全卫士,点击右下角的 "更多+"-》点击"我的工具"-》点击左下角的"编辑"-》点击"手机助手"上面的X号 这个时候可能会删除不了,那么就要删除手机助手的进程,如图里面的360Mobile。。这些,然后就可以删除了 然后再执行adb 命令就可以了
推荐阅读
- 多测师讲解 ---面试课程之app_001---高级讲师肖sir
- 记一次bug:C:Users98426.gradlecaches ransforms-1files-1.1appcompat-v7-28.0.0.aare5d207ddf888a313
- 解决Mac下AndroidStudio内容时卡顿
- Android中用opencv处理图片
- 这个毒奶色到底是啥来头啊?杨幂说的毒奶色是啥梗?_新浪微博
- 怎样看微信群内人员的王者荣耀排行?_微信
- 宋仲基宋慧乔带字搞笑表情包:给你一个眼神自己体会_其它聊天
- 麦当劳金拱门表情包大全:这是一个新的开始_其它聊天
- 空间留言板弹幕怎样关?