首页 > 其他分享 >APP测试

APP测试

时间:2024-04-12 23:13:03浏览次数:25  
标签:测试 APP 应用程序 应用 Android 性能 设备

自我介绍

测开自我介绍:偏嵌入式

我叫柯泽灵,毕业于浙江大学信息与通信工程,目前在TPLINK的研发杭州分部测试8课担任自动化负责人,

主要工作内容有两块,一是视频后端产品和智能家居产品的业务测试工作,包括测试用例开发、执行和缺陷跟踪;

这块因为我们自动化小组主要负责相对成熟的产品,占工作内容的40%左右;

二是负责视频后端产品线约200人的效能提升工作,包括效能平台开发,流水线系统开发,构建CI/CD 流程;

除此之外还会开发自动化工具与框架:包括UI自动化和接口自动化框架,以及性能测试工具等;

在效能提升工作上,我擅长发现工作中的痛点问题,自驱动地去使用技术方法推进解决;

  • 比如陪测摄像头不足时,我设计开发虚拟IPC工具,运行后可以模拟上千台摄像头;
  • 业务测试效率低,我开发接口自动化框架和UI自动化框架,提供低代码或零代码的自动化测试途径;
  • 产品软件版本快速迭代经常引入新问题,我推动构建CICD的流水线,每日对重要分支的代码做版本构建,在夜间进行dailyBuild的自动化测试并反馈报告;
  • 最终开发基于DJango的工程效能平台,整合开发和测试过程的工具链,集中管理自动化测试的资源,比如容器云环境、硬件设备和网络拓扑等,实现涵盖研发测试全流程的流水线系统;

APP测试的重点和难点:

重点:

  1. 功能性测试: 确保应用程序的功能符合需求,是 APP 测试的核心重点。
  2. 用户体验测试: 用户体验对于 APP 成功与否至关重要,需要重点关注用户界面、交互设计和响应速度。
  3. 兼容性测试: 应用程序需要在各种设备和操作系统上正常运行,需要重点测试兼容性。
  4. 性能测试: 应用程序的性能直接影响用户体验,需要重点测试性能指标。
  5. 安全性测试: 确保应用程序的数据安全和用户隐私,是 APP 测试的重要方面。

难点:

  1. 多平台兼容性: 应用程序需要在多个平台上运行,兼容性测试是一个挑战。
  2. 快速迭代: APP开发周期短,需要快速测试并反馈,测试人员需要高效率地进行测试。
  3. 用户体验: 用户体验测试需要考虑用户行为和心理,需要细致入微地测试用户体验。
  4. 安全性: 安全性测试需要专业知识和技能,发现潜在的安全漏洞需要一定的技术水平。
  5. 自动化测试: 自动化测试需要编写稳定的测试脚本,维护成本较高。

APP测试工具

在进行APP的功能、兼容和性能测试时,可以使用以下工具进行测试:

功能测试:

  • Appium: 一个开源的移动应用自动化测试工具,支持多种移动平台(iOS、Android)和多种编程语言。
  • Espresso: 一个适用于Android应用的UI自动化测试框架,可用于编写功能性测试用例。
  • XCTest: 适用于iOS应用的测试框架,可用于编写功能性测试用例。

兼容性测试:

  • BrowserStack: 一个基于云的移动应用测试平台,可用于在不同设备和浏览器上进行兼容性测试。
  • Sauce Labs: 另一个基于云的测试平台,支持在各种设备和操作系统上进行兼容性测试。

性能测试:

  • Apache JMeter: 一个用于性能测试的开源工具,可用于模拟多种负载情况下的性能测试。
  • LoadRunner: 一款功能强大的性能测试工具,可用于测试应用程序在高负载情况下的性能表现。
  • Gatling: 一个基于Scala的现代化负载测试工具,适用于测试Web应用程序的性能。

以上工具可以帮助测试人员有效地进行APP的功能、兼容和性能测试,提高测试效率和覆盖范围。根据具体的测试需求和环境,选择合适的工具进行测试是非常重要的。

各操作系统的特性

Android操作系统基本组成和重要原理:

  1. Linux内核: Android基于Linux内核,提供了底层硬件驱动和系统资源管理。
  2. 应用框架: 包括各种API和系统服务,为应用程序提供访问设备功能的接口。
  3. 应用程序: 用户界面、系统应用和第三方应用,构成Android应用生态系统。
  4. Dalvik/ART虚拟机: 用于执行Android应用程序的虚拟机,将Java字节码转换为机器码执行。
  5. 安全模型: Android采用基于权限的安全模型,应用程序需要请求权限才能访问系统资源。

针对Android特性开发测试APP:

  1. 多设备兼容性测试: 使用多种不同型号和版本的Android设备进行测试,确保应用在各种设备上正常运行。
  2. 适配不同分辨率: 测试应用在不同分辨率和屏幕尺寸下的显示效果和布局适配性。
  3. 性能测试: 测试应用在不同设备上的性能表现,包括响应速度、内存占用和电量消耗。
  4. 权限管理测试: 测试应用在权限管理方面的表现,确保应用只请求必要的权限。

iOS操作系统基本组成和重要原理:

  1. Darwin内核: iOS基于Darwin内核,提供了底层硬件驱动和系统资源管理。
  2. Cocoa Touch框架: 包括UIKit、Foundation等框架,用于构建iOS应用的用户界面和功能。
  3. Xcode开发工具: 提供了iOS应用开发所需的集成开发环境。
  4. Objective-C/Swift语言: 用于编写iOS应用程序的编程语言。
  5. 安全模型: iOS采用基于沙盒的安全模型,应用程序只能访问自己的沙盒内数据。

针对iOS特性开发测试APP:

  1. 设备兼容性测试: 测试应用在不同型号和版本的iOS设备上的兼容性。
  2. 界面设计测试: 测试应用的界面设计是否符合iOS的设计规范和用户体验。
  3. 性能优化测试: 测试应用在iOS设备上的性能表现,包括响应速度、内存占用和电量消耗。
  4. 安全性测试: 测试应用的数据传输和存储是否符合iOS的安全标准。

鸿蒙操作系统基本组成和重要原理:

  1. 微内核架构: 鸿蒙OS采用微内核架构,实现了更好的模块化和可扩展性。
  2. 分布式能力: 鸿蒙OS支持分布式能力,可以实现设备之间的协同工作和资源共享。
  3. 统一开发框架: 提供了统一的开发框架,支持多种应用程序开发方式。
  4. 分布式安全: 鸿蒙OS注重数据隐私和安全,提供了分布式安全解决方案。

针对鸿蒙OS特性开发测试APP:

  1. 分布式功能测试: 测试应用在多设备间的协同工作和资源共享功能。
  2. 多终端兼容性测试: 测试应用在不同类型的终端设备上的兼容性,包括手机、平板和智能家居设备。
  3. 安全性测试: 测试应用在鸿蒙OS上的数据传输和存储安全性,保护用户隐私和数据安全。
  4. 性能测试: 测试应用在鸿蒙OS上的性能表现,包括响应速度和资源占用情况。

通过针对Android、iOS和鸿蒙OS的特性开发测试APP,可以更好地充分利用各操作系统的优势,确保应用程序在不同平台上的稳定性、兼容性和性能。

指标原理解释:

  1. 启动时长: 应用启动时长是指从用户点击应用图标到应用完全加载并显示出来的时间。主要受应用初始化、资源加载和界面构建等因素影响。
  2. CPU/内存: CPU使用率和内存占用是衡量应用性能的重要指标。高CPU使用率可能导致应用卡顿,高内存占用可能导致应用崩溃。
  3. 耗电量: 应用在运行过程中消耗的电量与CPU、网络、传感器等硬件的使用密切相关。高耗电量可能导致用户体验下降。
  4. 流量: 应用在网络传输数据时消耗的流量。需要关注应用在后台是否存在不必要的网络请求,以及数据传输是否经过加密等安全措施。
  5. FPS(每秒帧数): 衡量应用界面流畅度的指标,通常要求保持在60FPS以上,否则用户可能感觉到卡顿。

测试方法:

  1. 启动时长测试: 使用工具记录应用启动时间,可以通过性能分析工具(如Android Studio的Profiler)或第三方工具(如App Launch Timer)进行测量。
  2. CPU/内存测试: 使用性能分析工具监控应用的CPU使用率和内存占用情况,可以通过系统自带的开发者选项或第三方工具(如Android Profiler)进行监测。
  3. 耗电量测试: 使用电量监控工具(如Android系统自带的电池使用情况)监测应用在运行时的耗电量情况。
  4. 流量测试: 使用网络监控工具(如Android系统的流量监控功能或第三方应用)监测应用在传输数据时的流量消耗情况。
  5. FPS测试: 使用性能测试工具(如GameBench)监测应用界面的每秒帧数,评估应用的流畅度。

综合以上测试方法可以全面评估应用的性能表现,发现潜在问题并进行优化,提升用户体验。

客户端性能测试工具

1. PerfDog

PerfDog是一个用于Android设备的综合性能测试工具。它可以测量设备的CPU、GPU、内存和网络性能,并生成详细的报告。

2. SoloPi

SoloPi是一个轻量级的Android基准测试工具,专门用于测试设备的CPU性能。它使用Pi计算基准来衡量设备的单核和多核性能。

3. Android Battery Historian

Android Battery Historian是一个用于分析Android设备电池使用情况的工具。它可以生成电池使用情况报告,并识别耗电最多的应用程序和服务。

性能测试工具定位性能瓶颈

1. 使用PerfDog

  • 运行PerfDog基准测试,并生成报告。
  • 分析报告中的CPU、GPU、内存和网络性能数据。
  • 寻找性能瓶颈,例如CPU使用率过高或GPU帧率过低。

2. 使用SoloPi

  • 运行SoloPi基准测试,并记录单核和多核性能分数。
  • 比较不同设备或不同配置下的性能分数。
  • 寻找性能瓶颈,例如单核或多核性能异常低。

3. 使用Android Battery Historian

  • 运行Android Battery Historian,并生成电池使用情况报告。
  • 分析报告中的应用程序和服务耗电情况。
  • 识别耗电最多的应用程序和服务,并优化其性能。

示例

假设您使用PerfDog测试了一款手机,发现CPU使用率过高。您可以进一步分析报告,查看哪些应用程序或服务导致了高CPU使用率。然后,您可以优化这些应用程序或服务的性能,以减少CPU使用率并提高设备性能。

其他提示

  • 在测试设备性能时,请确保设备已充满电且未连接到充电器。
  • 重复运行基准测试几次,以获得更准确的结果。
  • 将测试结果与其他设备或不同配置进行比较,以识别性能瓶颈。
  • 使用其他工具,例如Systrace或logcat,来进一步分析性能问题。

Appium简介

Appium是一个开源的自动化测试工具,用于测试移动应用程序。它支持iOS、Android和Windows平台上的原生应用、混合应用和移动Web应用的自动化测试。Appium使用WebDriver协议来控制设备并执行测试操作。

Appium的关键点和方法

  1. 环境设置

    • 安装Appium桌面客户端或命令行工具。
    • 配置Appium服务器和所需的驱动器,如Android SDK、Xcode等。
    • 连接移动设备或模拟器,并确保设备可被识别。
  2. Desired Capabilities

    • 在测试脚本中设置所需的Desired Capabilities,包括设备名称、平台版本、应用包名、应用活动名等。
    • Desired Capabilities指定了测试的目标设备和应用程序。
  3. 元素定位

    • 使用Appium提供的定位策略(如ID、XPath、ClassName等)来定位应用程序中的元素。
    • 通过元素定位,可以在测试脚本中模拟用户操作,如点击按钮、输入文本等。
  4. 测试操作

    • 使用Appium提供的WebDriver协议方法来执行测试操作,如点击、输入、滑动等。
    • 可以编写测试脚本来模拟用户在应用程序中的操作流程。
  5. 断言和验证

    • 在测试脚本中添加断言来验证应用程序的行为是否符合预期。
    • 可以使用断言来检查元素是否存在、文本内容是否正确等。
  6. 测试报告

    • 通过Appium生成测试报告,查看测试结果和执行情况。
    • 可以使用测试报告来分析测试覆盖率、失败原因等。
  7. 并行测试

    • 可以通过Appium实现并行测试,同时在多个设备上执行测试用例。
    • 并行测试可以提高测试效率和覆盖范围。

Appium使用示例

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;

public class AppiumTest {
    public static void main(String[] args) {
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("platformName", "Android");
        caps.setCapability("deviceName", "emulator-5554");
        caps.setCapability("appPackage", "com.example.app");
        caps.setCapability("appActivity", ".MainActivity");

        try {
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
            
            // 执行测试操作,如点击按钮、输入文本等
            
            driver.quit();
        } catch (Exception e) {
            System.out.println("An error occurred: " + e.getMessage());
        }
    }
}

这是一个简单的Java示例,演示了如何使用Appium和WebDriver协议来测试Android应用程序。在实际使用中,可以根据具体需求和场景编写更复杂的测试脚本。

标签:测试,APP,应用程序,应用,Android,性能,设备
From: https://www.cnblogs.com/kllkzl/p/18132314

相关文章

  • flutterr 检测应用版本号、服务器下载文件 以及实现 App 自动升级、安装
    依赖package_info_plus:^7.0.0path_provider:^2.1.2#查找文件获取文件存储路径open_file:^3.3.2#打开文件插件permission_handler:^11.3.1#检测Apk是否拥有权限配置权限<!--在Android6(Marshmallow)之前的版本中,明确声明网络权限--><uses-perm......
  • uniapp实现虚拟列表(元素固定高度)
    一、应用场景当接口返回数据太多时,前端可使用虚拟列表,实现长列表。二、原理只有在屏幕部分元素被显示出来,并且被更新,始终只有固定数量的节点,不会卡顿。三、效果图四、思路步骤使用Object.freeze冻结对象,极大优化性能生成多个元素的options,或者动态获取根据onPag......
  • [题解][2022年江西省大学生程序设计竞赛] Remove and append
    题目描述给定一个包含n个整数的数组a。定义一个操作如下:从数组a中选择k个整数,将它们删除,并将它们的和追加到数组末尾。如果数组A比数组B(长度相同)字典序大,那么在A和B第一次不同的位置上,A的数字比B对应位置上的数字要大。例如,[0,1,14,0]比[0,1,5,6]字典序大,因为它们在第三......
  • Mask实现原理(兼模板测试小结)
    前言虽然说网上已经有不少优秀的总结,但为了让知识停留在脑海里,我还是决定自己总结一份笔记。大概思路Mask会修改Graph组件的材质为StencilMaterial,该材质的作用是给每个不透明的像素标记,将标记结果存入模板缓冲区中。当子级UI进行模板测试时,如果通过就渲染,没通过就不渲染。......
  • 实验一 原型设计—游戏商城app
    问题一1.墨刀是一款在线原型工具,具有丰富的组件库和模板,允许设计师创建具有丰富交互元素的原型。可以快速创建各种类型的原型。还支持实时协作和云端存储,方便团队成员之间的沟通和合作。优点:墨刀支持实时协作,团队成员可以在原型上直接评论和批注,方便及时沟通和反馈;多人在线编......
  • 网易云音乐搜索与播放APP设计
    一、原型工具优缺点对比墨刀、Axure、Mockplus都是常见的原型设计工具,它们在适用领域和优缺点上有着各自的特点:墨刀:适用领域:墨刀适用于快速原型设计和团队协作。它的界面简洁易用,支持多种交互和动画效果,适合用于移动应用和网页的设计。优点:简单易上手,无需编码经验;提供在线协......
  • 背单词APP
    一、对墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点的分析1.墨刀适用领域:网页设计和移动应用界面设计快速原型制作和协作设计用户体验设计和交互设计优点:(1)界面直观,上手简单,适合初学者快速学习和使用。(2)支持实时协作,多人可以同时在同一个项目上工作,提高团队协......
  • FastAPI: 测试lifespan特性(转)
    addbyzhj:实践出真知,文章写得真不错,自己测试这些条件原文:FastAPI:experimentlifespanfeatureInitInFastAPI,oneofwayscreatingasharedresourceandlivingaslongasapplicationisupisusing lifespan featureinFastAPI.Thislifespanfeaturecandoc......
  • apple 各手机尺寸说明
     iPhone是苹果公司最受欢迎的产品线之一,其尺寸从4英寸到6.7英寸不等。以下是iPhone各型号的尺寸:机型屏幕尺寸(英寸)分辨率(pt)像素(pixel)图片后缀iPhone4/4s 3.5(326ppi) 320x480 640x960 @2xiPhone5/5c/5s/SE1 4(326ppi) 320x568 640x1136 @2xiPhone6/6s/7/8/SE2-3 4.7(326ppi) 375......
  • 四月十一日软件测试学习
      黑盒测试用例设计方法:1、等价类划分:他的具体操作方法,就是把所有可能的输入数据,包括有效输入数据和无效输入数据,给他划分成若干个等价的子集,给他起个名字就叫做等价类,使得每个子集中的典型值在测试中的作用与这一子集中其他值的作用相同。因为咱们输入的数据分为......