软件测试 零基础自学笔记_app自动化测试

APP测试流程

  1. 需求分析
  2. 测试计划编写
  3. 测试用例设计
  4. 测试用例评审
  5. 用例执行
  6. 回归测试
  7. 非功能测试
  8. 走查验收(UI、产品)
  9. 灰度发布
  10. 上线
  11. 测试总结报告

需求分析

需求分析步骤

  • 明确测试范围
  • 明确功能点
  • 明确业务流程
  • 明确输出结果
  • 分析异常流程
  • 预估测试需要的时间和资源

接口验证

接口文档

  • 接口请求地址
  • 接口请求方式
  • 输入参数
  • 输出结果

接口工具

  • charles
  • fiddler

常见的app测试框架

在这里插入图片描述

自动化测试工具

在这里插入图片描述

注意

calabash是否可以测android?

APP元素定位

  • 原生APP:

    • uiautomator viewer --> Android SDK
    • inspector --> appium desktop
    • weditor --> 浏览器
  • web app:

    • pass
  • 混合app:

    • pass
  • 判定方式:在开发者选项中打开页面布局边框,测试软件每一个控件(元素)都是有一个红+蓝框包括起来的是原生APP 。多个空间(元素)包含在一个红+蓝框包括起来是混合APP。

weditor

安装

pip install weditor

特点

不稳定

使用

  • 输入python -m weditor
  • 弹出浏览器
  • 点击CONNECT连接设备
  • 点击DUMP Hierarchu刷新界面

定位方式

  • driver(定位方式=‘定位值’)

UIAutomator

可以用python对Android设备进行UI自动化的库。其底层基于Google uiautomator,可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,目前仅支持android平台的原生应用测试。

特点

  • 功能丰富:设备和开发机可以脱离数据线,通过wifi互联
  • 得心应手;集成了openstf加快截图速度,控制精准
  • 深度整合:代码进行了重构和精简,方便维护

环境

  • 设备(模拟器或真机)
  • JDK环境
  • 安卓SDK环境
  • 语言环境(java、python)
  • IDE(pycharm)
  • 框架(UIAutomator2)

初始化

打开cmd 输入 python -m uiautomator2 init

操作步骤

  • 导包import uiautomator2 as u2(顺便取个别名)
  • 建立连接
  • 初始化 app-界面-打开
  • 获取应用包名与类名:python -m uiautomator2 current
  • 测试流程:定位元素+元素操作

代码流程

import uiautomator2 as u2
	driver = u2.connect(addr='设备号')
	driver.app_start(package='包名',activity='类名')
	定位+操作

定位方式

XPATH定位

相对定位:

//*
//*[contains(@resource-id, 'login')](重点)//*[@text=‘登录](重点)
//*[contains(@resource-id,'login') and contains(@text,'登录')](重点)
//*[contains(@text, '登录')orIcontains(@class,'EditText')](了解)
//*[ends-with(@text,'》][//*[starts-with(@text,姓名')]两个定位的集合列表(了解)
//*@clickable="true"MV/android.widget.TextView[string-length(@text)>0 and string-length(@text)<20](了解)
//*[contains(@text,'看点')/ancestor::*//*[contains(@class,'EditText')]()(了解)

APP元素操作

模拟手势操作

  1. 按压控件: press()
  2. 长按控件:longPress()
  3. 点击控件:tap()
  4. 移动:moveTo()
  5. 暂停:wait()
  6. 结束操作:release()
  7. 将操作发送服务器:Perform()
    例如:
    action.longPress(names.get(1),1000).perform().replease;
    TouchAction(driver).press(x=0,y=308).release().perform()

移动设备特有的操作

  1. 息屏: lockDevice()
  2. 当前Activity: currentActivity()
  3. 收起键盘:hideKeyboard()
  4. 滑动:swipe()
  5. 拉出文件:pullFile()
  6. 推送文件: pushFile()
    例如:
    driver.pushFile(“sdcard/test.txt”, data);
    driver.swipe(75,500,75,0,800);
    driver.lockDriice();

appium

安装

pip install appium-python-client
appium官网建议下载1.19版本较为稳定

代码

from appium import webdriver
des={
	'debice':'127.0.0.1:62001',
	'platformName':'android',
	'platformVersion':'5.1.1',
	'appPackage':'包名',
	'appActivity':'类名',
	'noreset':True #Ture没有清除缓存
}
driver = webdriver.remote('http://127.0.0.1:4723/wd/hub'desired_capabilites=des),

环境安装

  • java 1.8版本

    • 配置环境变量在这里插入图片描述
  • android sdk

    • 配置环境变量
  • node js,npm

  • python3

  • appium desktop

  • appium python client

引擎

android

  • espresso
  • selendroid
  • uiautomator2

ios

  • uiautomation
  • xcuitest

设计理念

基于http协议,第一个链接会建立一个session会话,通过post发送一个json告知服务端相关测试信息

生态工具

  • adb:Android的控制工具,用于获取android的各种数据和控制
  • appium desktop:内嵌appium server 和inspector的总和工具
  • appium server: 核心工具,命令行工具
  • appium client:各种语言的客户端封装库,用于链接appium server
  • appcrawler:自动遍历工具
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值