软件测试技术实战 设计、工具及管理》联载-36

简介: 软件测试技术实战 设计、工具及管理》联载-36

11.1.3  开发测试代码


下面用ADT里自带的Eclipse开发一个简单的软件测试代码。它包括以下几个步骤。

1)新建一个Java工程包。

2)增加build path

3)新建软件测试类,继承UiAutomatorTestCase

4)编译与运行。


1.新建一个Java工程包

1)建立一个Java Project,如图11-8所示。

2)为Project起一个名字,并且选择路径,如图11-9所示。

3)确定Project信息,如图11-10所示。


image.png

11-8  建立一个Java Project


image.png

11-9  Project起一个名字,并且选择路径


image.png

11-10  确定Project信息


4)为Project建立一个包,如图11-11所示。


image.png

11-11  Project建立一个包


右击Project名,建立PackagePackage名称一般为XX.XX.XX,并且具有一定的含义。比如:com.jerry,表示Jerry公司开发的Java Package


5)建立临时文件目录,命名为libs,如图11-12所示。


image.png

11-12  建立临时文件目录,命名为libs

右击Project名,选择new->folder,命名为libs


6)寻找android.jar文件[J2]

通过文件夹,寻找android.jar,复制这个目录下的两个文件android.jaruiautomator.jar,如图11-13所示。


image.png

11-13  android.jaruiautomator.jar文件


7)粘贴到第(5)步建立的libs目录下,如图11-14所示。


image.png

11-14  粘贴到第(5)步建立的libs目录下


8build path这两个文件,如图11-15所示。


image.png

11-15  build path


选择这两个文件,点击鼠标右键,在弹出的菜单中选择“buildpath->Addto Build Path”,这两个文件就添加到“Referenced Libraries”中了。


9)在这个包下建立类(class)。

选中第(4)步创建的包,单击鼠标右键,在弹出的窗口中选择New->Class,如图11-16所示。


image.png

11-16  新建Class


Class起一个名字,单击Browse…】按钮,如图11-17所示。


image.png

11-17  Class起一个名字


使其继承UiAutomatorTestCase类,如图11-18所示。

完成后生成基本的代码如图11-19所示。


image.png

11-18  使其继承UiAutomatorTestCase


image.png

11-19  完成后生成基本的代码


2.编译和运行

建立好测试代码,就可以运行了,编译和运行总体架构如图11-20所示。


image.png

11-20  编译和运行总体架构


1)输入如图11-21所示代码,这个代码的作用:按下手机上的Home键。


image.png

11-21  输入代码

2)获得Project位置,选择“文件->属性”命令,获得Project位置,如图11-22所示。


image.png

11-22  获得Project位置


3)打开命令行,通过cd命令进入类的路径,如图11-23所示。

4)创建build.xml文件。

在命令行中输入“>android create uitest-Project -nmyTest -t 1–p C:\Myproject\Demo1”,获得如图11-24所示的3个文件。

     

image.png

                      11-23  通过cd命令进入类的路径

image.png

11-24  获得的3个文件

在这个命令中:

-tid可以通过>android list获得,一般为1

-n:类名。

-p:类所在的路径。

将新产生的build.xml中的default=help”改为default=build”,如图11-25所示。


image.png

11-25  修改build.xml文件


5)通过ant命令进行编译。

输入:>ant -buildfile build.xml,编译测试jar包,如图11-26所示。


image.png

11-26  编译build.xml文件


6)在Eclipse中启动模拟器。

如图11-27所示,在Eclipse中按标记的按键,启动安卓模拟器。


image.png

11-27  Eclipse中启动安卓模拟器


在弹出的菜单中点【Tools】,如图11-28所示。


image.png

11-28  Android SDK Manager进入Android虚拟设备管理器

然后点击【New】按键可以新建模拟器;或者在选中已有的模拟器中单击【Edit】按钮修改已有的模拟器设置,如图11-29所示。


image.png

11-29  新建Android设备模拟器


新建或者修改完毕,选择要启动的模拟器,单击【Start…】按钮,然后单击【Launch】启动Android模拟器,如图11-30所示。


image.png

11-30  启动Android设备模拟器


7)等待模拟器启动完毕,把文件pushAndroid虚拟机上[J3]

输入:>adb push C:\Myproject\Demo\bin\Demo.jar/data/local/tmp,如图11-31所示(关于adb的命令,见参考文献【10】)。

注:文件必须push到Android设备的/data/local/tmp目录中。

image.png

11-31  把文件pushAndroid虚拟机上


在虚拟机上运行测试程序。

运行:>adbshell uiautomator runtest Demo.jar -c com.jerry.myTest #mytest,如图11-32所示。其中:


image.png

11-32  在虚拟器上运行


Demo.jarjar包名。

com.jerry.myTest:类名。

#mytest:注释。


3.运行命令与快速调试

显而易见,如果要修改这个测试脚本,就要重新生成文件、修改build文件、编译、push到虚拟设备上,然后运行。这是非常麻烦的步骤,因此下面介绍一种简便的方法,用于快速运行UiAutomator测试脚本。

在介绍运行命令与快速调试之前,先把代码修改一下:

package com.jerry;
import android.os.RemoteException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import com.android.uiautomator.core.UiDevice;
public class myTest extends UiAutomatorTestCase {
    public void testDemo()
    {
    UiDevice.getInstance().pressHome();  //按Home键
    }
    public void testMenu(){
    UiDevice.getInstance().pressMenu(); //按菜单键
    }
    public void testRecent() throws RemoteException{ 
    UiDevice.getInstance().pressRecentApps(); //执行最近运行的程序
    } 
}


其中:

UiDevice.getInstance().pressHome(); 为按下Home键。

UiDevice.getInstance().pressMenu(); 为点按菜单键。

UiDevice.getInstance().pressRecentApps(); 为执行最近运行的程序。

打开浏览器,输入https://github.com,进入页面后,查询uiautomatorhelper,如图11-33所示。


image.png

11-33  查询uiautomatorhelper


找到后,点击链接:fan2597/UiAutomatorHelper,如图11-34所示。


image.png

11-34  选择fan2597/ UiAutomatorHelper


建议在下面的页面中使用Copy,而不使用Download,如图11-35所示。


image.png

11-35  Clone in Desktop

按照图11-36粘贴上一步Copy的地址到Eclipse中。


image.png

11-36  粘贴上一步Copy的地址

然后单击【Next】按钮。安装完毕后,如图11-37所示,导入ImportGit到已有的Project中。

image.png

11-37  导入Git到已有的Project


导入完毕后,单击【Finish】按键,如图11-38所示。

接下来,如图11-39所示,单击【Java】图标按钮,确保Git已成功导入。

查看UiAutomatorHelper.java,它把产生build.xml、修改build.xml、编译、传输、执行操作通过程序自动化起来了,如图11-40所示。

image.png

11-38  导入Git完毕

image.png

11-39  确保Git已成功导入

image.png

11-40  UiAutomatorHelper.java


下一步,把UiAutomatorHelper.java复制到自己建立的包下,如图11-41所示。

image.png


11-41  UiAutomatorHelper.java复制到自己建立的包下

接下来,如图11-42所示,加入一个main函数。

image.png

11-42  加入一个main函数


main函数中。[J4]

jarName:测试脚本的jar包名。

testClass:测试脚本的Package名称。

testName:测试脚本的函数名。

androidID:通过运行android list获得,一般为1

最后点Eclipse上面的【运行】键,就可以在Eclipse里面运行了。如果需要修改测试脚本,修改完毕,保存后,直接点【运行】键就可以再次在Eclipse中运行了。


顾翔凡言:

不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。

目录
相关文章
|
6月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
7月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
7月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
635 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
6月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
7月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
927 11
|
7月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
609 6
|
7月前
|
人工智能 Java 测试技术
单元测试覆盖率的自动控制技术
Jacoco是Java程序覆盖率工具,可以在pom.xml通过配置来自动控制程序的覆盖率
174 5
|
8月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
10月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1436 23

热门文章

最新文章