软件测试技术实战 设计、工具及管理》联载-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中运行了。


顾翔凡言:

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

目录
打赏
0
0
0
0
310
分享
相关文章
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
72 4
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
27 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
282 17
Selenium:强大的 Web 自动化测试工具
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
148 59
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
86 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
移动端性能测试工具
移动端性能测试工具
155 2
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
533 2

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
    124071
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
    76
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
    20
  • 4
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
    10
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    75
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    18
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
    12
  • 8
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
    56
  • 9
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    13
  • 10
    AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
    3
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等