IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> APP测试笔记 -> 正文阅读

[开发测试]APP测试笔记

1、App测试在行业中的重要性

APP(Application),移动端的应用,在目前企业中,占比大约在50%左右。意味着测试人员,有50%的几率接触到移动端的应用测试。
移动端自动化功能测试,目前主流是基于Appium来实现的。其原因是:
1.Appium是继承于selenium
2.Appium是开源的,跨平台的测试框架。Appium本身现在主流的应用版本desktop版本

2、Appium环境搭建

1. 安装JDK和SDK;
JDK(1.8版本):java development kit——Java开发工具库
SDK:software development kit——软件开发安装库,基于需要测试的安卓系统来决定SDK安装版本——SDK manager
Chrome driver
2. 安装Appium desktop安装包

3、APP测试必须了解的小技巧——p.55

1、adb(安卓调试桥)指令,用于连接测试设备——adb shell;adb devices用于查看adb连接的设备数及设备名称。
在这里插入图片描述
2、Appium Desired Capabilities:在Appium中,连接设备中的被测程序需要配置属性(即:Appium不是连接设备)
1.deviceName:设备名称。eg. 127.0.0.1:62001
2.platformName:操作系统名称。eg. 安卓
3.PlatformVersion:操作系统版本。设置 -> 关于手机,eg. 4.4.2
4.appPackage:应用程序的包名。eg. com.tencent.mobileqq ——adb shell pm list package:显示所有程序的包名;adb shell pm list packages -3:显示所有第三方程序的包名。
在这里插入图片描述
5.appActivity:应用程序的主入口。——可通过该命令进行查看:adb shell dumpsys window windows |grep current -i
在这里插入图片描述
eg. 主入口为:.activity.SplashActivity。如果前面的与包名不一致,则不可省略;否则,可以省略(这里就省略了)
6.noReset:启动应用时是否重置,true表示不重置。——eg.这样打开qq,不会再重新要求登陆?默认为false,重置。
7.“unicodeKeyboard”:true,”resetKeyboard”:ture,用于支持中文输入
在这里插入图片描述

4、什么是APP稳定性测试

Monkey首选,一般软件要求能够长时间稳定不出现问题地持续运行。为了校验系统版本是否稳定,是否能够持续为用户进行服务。
Monkey是性能测试?其实不是,Monkey是随机进行各类操作指令,确保APP能够稳定,不出现任何的崩溃、异常等情况。Monkey是个指令

5、Monkey原理

只有Android操作系统才有Monkey。其本身是安卓操作系统下的一个jar文件。是在进行调用之后,生成了系统进程,基于进程来执行的Monkey
如果是iOS等其他操作系统,需要自己写一个Monkey。
在启动monkey测试之后,有两种方式进行结束:1. 通过kill该进程;2. 自己本身运行结束。
adb shell
cd ./system
cd ./bin
cd …/framework
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Monkey其实就是 Monkey.jar 文件,在Android操作系统内通过adb指令调用Monkey.shell 文件,执行Monkey.jar文件。基于配置,实现随机性测试
adb monkey——monkey.shell——monkey.jar——生成安卓进程来执行测试

6、Monkey指令

  1. 搭建环境:
    sdk环境。通过sdk manager进行安装。
    一台手机或模拟器。
  2. 链接设备——打开开发者模式,打开usb调试
    通过adb devices指令进行连接。
  3. monkey操作
    adb shell:连接手机。——从windows变为Linux
    然后输入monkey,即可查看monkey相关指令:
    在这里插入图片描述
    -p:指定被测试程序(包)
    events:事件数
    Eg. 执行列子如下:
    在这里插入图片描述
    –throttle:等待,每次事件之间,插入的等待操作——类似sleep?单位都是毫秒ms
    在这里插入图片描述
    -v:添加日志(等级) 缺省lv0 -v lv1 -v-v lv2 -v-v-v lv3
    在这里插入图片描述
    当我们在monkey中出现异常的时候,一定要重现bug,就需要monkey再按照之前的行为执行一次。设置运行编号,可以保证。如下:
    -s:为本次的monkey运行设置编号
    在这里插入图片描述
    PS:在monkey指令运行时,日志指令与事件指令一定放在最后
    在运行过程中除了kill指令monkey结束之外,出现异常崩溃等情况monkey也会停止。为了防止因为异常导致monkey指令提前结束,可添加如下指令(下班前):
    --ignore-crashes:忽略在系统出现crash时导致的monkey挂起。
    --ignore-timeouts:忽略在monkey运行过程中,因为ANR(application not responding应用未响应)导致的挂起。
    第二天过来要检查是否出现了异常:
    1.通过查看日志的形式来检查,logcat。
    在这里插入图片描述
    2.将日志导出到本地D盘的xizhu.txt文件中。然后查找异常,如:ctrl+s,输入crash、exception、timeout等进行查找。

注意:通过以下的方式进行操作,会报错。因为相当于在手机内部进行创建文件,是不被允许的
在这里插入图片描述
完整版指令:adb shell monkey -p 包名 -s monkey编号 --throttle 等待时间 --ignore-crashes --ignore-timeouts -v -v 事件数 >日志存放位置
在这里插入图片描述
一般情况中:
当关键字是一个字母时,用单横杠-;
当关键字是一个单词或者词组时,用双横杠–
--pct--touch来控制点击:——类似的,也可以通过其他指令来控制其他操作百分比。
在这里插入图片描述

7、为啥要讲monkey测试指令?

  1. 是目前企业中对于APP稳定性使用度很高的指令;
  2. 因为APP测试现在是市场中比较主流的东西;

日志

1、日志:日志跟踪运行软件所发生事件的方法
2、日志的作用:信息查询、服务诊断、数据分析。
3、日志等级:优先级从小到大五个等级——debug:调试信息——info:描述重要事件——warning:警告信息——error:错误异常信息——critical:严重错误
4、Python中如何生成日志
(1)logging模块
Python内置模块,可以生成日志。包括可以设置日志等级、日志路径、日志文件回滚等。
Logging包括四个组件
(1)logger:日志器。提供了应用程序的接口。——可以有多个处理器。
(2)Hander:处理器。通过logger在不同位置输出日志。
(3)Formator:格式器。决定日志以什么的样式显示。
(4)Filter:过滤器。过滤哪些需要记录输出,哪些需要丢弃。
例子:

import logging
class Demolog:
	def log(self):
		# 创建一个日志器
		logger=loggin.getLogger(“logger”)
		# 设置日志输出最低等级,低于当前等级就会被忽略
		logger.setLevel(logger.INFO)
		# 创建一个处理器
		sh=logging.StreamHandler()	 # 终端(控制台)输出
		fh=logging.FileHandler(filename=”Log/()_log”.format(time,strftime(“%Y_%m_%d_%H_%M_%S”,time.localtime())),encoding=”utf-8”) # 文件处理器(输出为一个文件)
		# 创建一个格式器
		formator=logging.Formatter(fmt=”%(asctime)s %(filename)s %(levelname)s %(message)s”, datefmt=”%Y/%m%d/%X”) 
		# %(参数——比如时间asctime(需要指定时间格式的样式datefmt),日志生成在哪个目录下filename,错误等级信息levelname,错误信息内容)参数格式——比如字符串格式为s;数字格式为d
		
		sh.setFormatter(formator)
		fh.setFormatter(formator)
		logger.addHander(sh)
		logger.addHander(fh)
		return logger
		# logger.debug(“debug信息”)	# 会被忽略
		# logger.info(“info信息”)
		# logger.warning(“warning信息”)
		# logger.error(“error信息”)
		# logger.critical(“critical信息”)

	def sum(self,a,b):
		try:
			sum=a+b
			# 记录描述
			self.log().info(“正确计算出{}+{}之和”.format(a,b))
			retun sum
		except Exception as error:
			self.log().error({}+{}之和计算错误:{}”.format(a,b,error))
	
# Demolog().log()
# Demolog().sum(1,2)
Demolog().sum(2,“b”)

结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方法1:添加removeHandler(兼容性不好,不推荐)
在这里插入图片描述
在这里插入图片描述
解决方法2:添加判断条件
在这里插入图片描述
在这里插入图片描述
Pytest生成测试报告(控制台下执行):
在这里插入图片描述
Allure生成测试报告:(指定给某个文件生成测试报告 测试报告存储位置)
在这里插入图片描述
在这里插入图片描述

Fiddler

1、定义
Fiddler是位于客户端和服务端的HTTP代理。目前常用的http抓包工具之一。功能非常强大,是web调试的利器。
监控浏览器所有的http/https流量
查看、分析请求内容细节
伪造客户端请求和服务器响应
测试网站的性能
全局、局部断点功能
第三方插件
在这里插入图片描述
2、使用场景
接口调试、接口测试、线上环境调试、web性能分析、判断前后端bug、开发环境hosts配置、mock、弱电弱网测试。

3、Fiddler的工作原理
Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口号:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler

4、Http协议
在这里插入图片描述
在这里插入图片描述
http协议之请求
http请求由四部分组成:请求行、消息报头、空行、请求正文
在这里插入图片描述
在这里插入图片描述
聚合数据登陆(post请求的抓包):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
HTTP协议之响应
在接收和解释请求消息后,服务器返回一个HTTP响应消息。
HTTP响应也是由四个部分组成,分别是:状态行(响应行)、消息报头(响应头)、空一行、响应正文。
在这里插入图片描述
在这里插入图片描述
一般的HTTP抓包设置(可能与浏览器缓存有关,有时候需要清理):
在这里插入图片描述
因为https=http+ssl(安全机制/密钥),故而需要公钥进行解析(即客户端需要获取/安装一个安全证书
如果出现证书错误
在这里插入图片描述
(以上都是fillder通过ie、chrome浏览器抓取HTTP或HTTPS来设置代理的!!!)
在firfox中的设置需要自己弄!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:23:20  更:2021-08-07 12:24:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:51:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码