软件自动化测试开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-07 20:32:45

点击下载

作者:邹辉

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

软件自动化测试开发

软件自动化测试开发试读:

前言

关于本书

互联网软件技术发展速度非常快,稍不留神就“out”了,然而测试思路、开发语言却是有历史承传的。只有多实践打好基础,知其然并知其所以然,方可以不变应万变。我们上学是从幼儿园、小学、中学……到博士后一级一级上,学习技术也不例外,因此具备快速学习的能力十分重要。人们对美好先进的东西永不会满足,追求永无止境,所以人生就是一个永远自强不息的成长过程。

本书用详细、完整的案例,完整的代码以及理论知识引领读者进入实际操作。当读者实践一遍之后,就能看到真实效果,并且印象深刻。就像拿到驾照后终身不用再考,而且能够驾驶准驾车型的各种车一样,二者的原理相同。这样我们就能花最小的代价学到最实实在在的自动化测试开发技术。

本书全面地深入讲解地自动化测试开发技术,包括接口自动化测试、App自动化测试、Web自动化测试和性能自动化测试,同时还讲解了最新、最流行的自动化技术:移动Appium功能自动化、API后台接口自动化、LoadRunner性能测试、Selenium的Web自动化以及JMeter自动化技术等。

本书基于Java语言和Python语言编写,结合各种主流开源工具框架,能够真正地提升测试技术水平。掌握一门开发语言是极为必要的,读者可着重学习书中完整的Java和Python源代码和解析,提升薄弱环节。源代码对于实战来说十分重要,因此书中代码部分都加上了注释和解析,以供读者理解和学习。写代码无疑是测试同行较为薄弱的部分,但是当把看代码、写代码当成一种习惯或一种乐趣时,学习代码自然就能得心应手。

本书实践与理论相结合,包括方案、环境、代码和运行报告。书中的源码在保留版权的情况下供读者使用,也就是说,读者使用源码时需要注明出自本书。

本书需要读者有较好的基础和耐心,以及领悟力。对初学者而言,可以照葫芦画瓢,在实践中激发兴趣和信心,对有基础的读者而言,可以更加深入地了解自动化测试,并直接应用到工作当中,本书的内容将起到一个实用指南的作用。有的人擅于自己摸索着学习,有的人喜欢在书本的引导下学习,也有的人需要通过培训来学习,这都没关系,俗话说:不管黑猫白猫,抓到老鼠就是好猫。关于软件自动化测试开发

除手工测试外,其他都是自动化测试。因此,软件自动化测试开发指的是测试技术和开发技术相结合,用手动测试之外的测试技术,模拟手动用户场景测试的实现过程,简单来说,就是用写的代码来测试程序。

在工作中,手动功能测试人员通常会感觉自己比其他如开发、产品等人员相对弱势,因为功能测试一般被认为技术含量不高,准入条件较低,甚至被认为工作就是单击页面,单击按钮。通常手动功能测试人员只需3~6个月左右的专业培训就足以胜任工作。

自动化测试开发工作相对测测而言,技术含量较高,相关人员的待遇也相对较高,他们与广大程序员的性质相同,是测试从业人员追求技术进步的表现。一般来说,自动化测试开发需要1~3年左右的专业培养方能胜任工作。适合读者

绝大多数适用的读者

● 所有软件测试从业人员,包括测试团队leader。

● 有一定开发语言基础的测试人员。

● 软件测试专业的学霸。

少部分适用的读者

● 软件测试专业的在校大学生。

● 软件技术、移动互联网相关人员,包括开发人员,研发团队leader等。

● 其他任何对软件自动化测试开发感兴趣的人。作者简介

本书作者有丰富的软件测试从业经验,擅长开发和测试技术,担任测试主管,以电子商务、银行证券、移动互联网为主要业务领域,现在负责一上市企业O2O产品的软件自动化测试开发工作。大纲内容

第1章到第4章:介绍App功能自动化测试方案、环境、代码、运行报告。

第5章到第7章:介绍API接口自动化测试方案、环境、代码、运行报告。

第8章:介绍Selenium的Web自动化测试。

第9章:介绍JMeter接口和性能测试。

第10章:介绍LoadRunner性能测试。

第11章:介绍Jenkins持续集成。

附录A-D:小知识参考。

前言后记:“鸡汤”。致谢

感谢自己业余时间在咖啡厅辛勤地写完此书,感谢我的家人,感谢我的朋友们。

感谢之前相对比较默契的同事们,因为和大家共同的工作经历和成长才得来本书内容的酝酿——分别有测试经理蔡祥;走秀网PM吴盛幸,开发劳水生,测试经理曾春刚;腾讯开发郑双明;华南城华盛电子商务CTO阳志军;充电网朱舜、邓明剑、刘东亮等。

最最感谢的是对本书感兴趣的你——读者朋友们。关于勘误

虽然书中的每个技术点都曾在实际项目中实践和应用过,但也会因为我们个人技术、所测项目和视野的局限,以及本人因时间仓促和能力水平等种种原因,书中难免会有一些错误和纰漏,如果大家在阅读过程中发现了什么问题,恳请反馈给我,读者朋友们可即时在线交流,联系方式如下。

作者微信和QQ号:zouhui1003it,7980068

测试博客:http://www.cnblogs.com/finer

读者实战QQ互动群:377029807

微信公众号:测试开发社区第1章App自动化测试方案1.1 概述

什么是App自动化?为什么要做App自动化?

App自动化是指给Android或iOS上的软件应用程序做的自动化测试。

手工测试和自动化测试的对比如下。

手工测试优势:不可替代、能发现更多bug、包含了人的想象力与理解力。

自动化测试优势:可重复、效率高,能增加对软件质量的信任度。

注意,不是所有功能都需要自动化,只需把重复执行的以及主要的交给自动化。

App自动化测试的特点如下:

● 执行自动化测试只能发现一小部分bug。

● 执行自动化冒烟测试或回归测试是用来验证系统状态,而不是找出更多bug。

● 执行自动化测试可以让测试同事有更多的精力来关注复杂场景,做更多更深层次的测试。

● 编写自动化测试过程中会发现一部分bug,发现后要及时记录。1.2 风险分析

自动化测试的主要风险分析如下:(1)测试用例覆盖率(覆盖率决定了测试效率,因此要选择合适的用例,应约占功能用例集的20%~50%)。(2)测试结果准确度(准确度决定了测试有效性,因此应尽可能减少误报)。(3)自动化代码维护(维护影响成本,本书写的是关键字驱动自动化框架,自动化框架代码应尽可能优化,所测的功能改动而代码不需要改动时才是强大的框架,维护成本才足够低)。(4)版本开发和测试时间进度(当项目需求和功能较为稳定时,建议用自动化测试)。(5)开发对控件元素增修改的程度(需开发人员尽可能地用name元素,并且和UI设计一致。当修改变动量较小时,测试人员可根据提供的元素提前介入,开发自动化脚本)。

App源码权限控制,在iOS上测试时需要用到源码,我们测试人员可能只需要SVN下载权限,不需要上传权限,因此应尽可能地避免改动SVN上开发人员的源码。1.3 软硬件需求

自动化测试的软硬件需求如下。

硬件:

● Mac电脑、iPhone手机。

● Windows电脑、Android手机。

软件:

● Appium测试框架:运行App驱动的自动化平台,通过识别的控件元素,模拟用户的手工操作,支持iOS和Android系统。

● Jenkins:持续集成自动构建和执行任务。

● TestNG、Ant、SVN:测试插件初始化、测试、断言、清理。

● JDK、Eclipse、Java语言开发编写环境。

● AdbWireless:安卓手机和电脑间的无线连接。1.4 测试计划

时间计划

对于有良好代码基础的熟手,可用一周时间做出演示demo。如果是从零开始的小白,则可用3到6个月的时间做出演示demo。

对于有良好代码基础的熟手,可用一个月时间试运行冒烟测试用例。如果是从零开始的小白,则可用半年到一年的时间试运行测试冒烟测试用例。

目前App自动化框架计划

采用自动化关键字数据驱动模式设计,即表格驱动测试或者基于动作的测试。关键字驱动框架的基本工作是将测试用例分成四个部分:一是测试步骤,二是测试步骤中的对象,三是测试对象执行的动作(Action),四是测试对象需要的数据(Test Data)。

后期App自动化框架计划

把测试用例、控件元素等放入数据库或页面进行展示操作。做到写自动化测试用例完全不用增修改代码,而是由用例自动生成代码,自由管理大量用例和测试数据,最终做成自动化平台。这些内容需要一个测试开发团队来实现,可参见本书附录A。1.5 Appium移动自动化框架

1.需要要掌握的技能(第1章到第4章都会用到)(1)Appium API、WebDriver基础知识和环境搭建(见第1.5节)。(2)TestNG等测试框架(见第1.6节)。(3)Android/iOS开发测试基础以及环境搭建(见第2章和第3章)。(4)开发移动自动化项目的Java语言或Python语言等(见第4章)。

需要说明的是,如果想用Python语言编写App自动化测试框架,那么读者可以参考本书的Java和TestNG的代码逻辑,使用Python和unittest编写测试脚本。Appium自动化测试框架的功能概括如下:

2.Appium框架的功能(1)支持iOS、Android,可在多台机器上并行App自动化,测试机型适配。(2)代码实现关键字驱动:

● 测试集:关联Excel测试用例和脚本配置。

● 测试数据:Excel存储输入数据、控件元素、测试结果。

● 测试脚本:由Java和TestNG编写,分层结构有case、log、config、report以及data等。(3)自动测试用例执行:

● 从功能测试用例中抽取需重复执行的、主要的功能进行用例覆盖。

● 支持用例failed(失败)时自动截屏。

● failed(失败)用例自动重复执行数遍。(4)持续集成环境Jenkins,定时自动构建和执行测试任务。

● 测试结果报告展示,自动邮件展示。

Appium自动化测试一个App的基本过程如下:

3.测试App的基本过程

基于Appium自动化测试框架,我们要进行的是连接电脑、连接手机、解锁、安装App、卸载App、启动App、元素定位、元素的操作、屏幕的操作、页面等待、异常处理截图、数据校验、日志、报告等一系列自动化测试执行的详细过程。

Appium自动化框架元素控件的捕获,根据捕获到的元素控件进行相应的操作。

Appium元素控件有多种定位方法,最常用的是元素的ID(即By.id)和元素的值(即By.name)。还可以通过元素类型TagName、元素的位置XPath、手机设备的坐标等进行定位操作。安卓的元素控件可以通过SDK中的uiautomatorviewer.bat文件进行录制和捕获定位,如图1.1至图1.3所示。▲图1.1▲图1.2▲图1.3

如图1.3所示,Node Detail下面的resource-id com.test.seller:id/phone_edit1对应Excel和代码中的定位方法By.id,控件元素数据text 13798359580对应Excel和代码中的操作方法sendkeys(),控件元素赋值数据为13798359580。

可以这样理解:首先找到这个文本框,接着给这个文本框输入数据。即通过ID属性值com.test.seller:id/phone_edit1,找到此用户名文本框的控件元素,然后通过sendkeys()方法输入用户名数据13798359580到此用户名文本。其他自动化测试步骤的定位方法、控件元素以及操作方法也都与此类似。实际上,自动化测试就是通过程序代码来实现模拟手动测试去操作一遍的过程。

上面介绍了用户名文本框输入用sendkeys()方法,那么其他元素的操作方法有哪些呢?元素操作方法大致有单击(click)、输入(sendkeys)、元素滑动、页面滑动、长按、下拉、弹出、屏幕放大缩小等,最常用的就是单击和输入。代码解析详见第4章中的源码。

数据校验。其实元素本身就是数据校验,当程序找不到元素时,用例就会失败。另外,测试用例时可以加入一个或多个断言进行验证数据,还可设置步骤等待延迟时间,详细内容见第4章讲解中的源码。

测试结果。测试用例中记录了运行后的测试结果,如pass、failed或是skip,详细内容见第4章关联的Excel测试用例。

4.Appium介绍(参考Appium官方资料)

Appium是一个移动端自动化测试开源工具,支持iOS和Android平台,支持Python、Java等语言,即同一套Java或Python脚本可以同时运行在iOS和Android平台。

Appium是跨平台的,即可以针对不同的平台用一套API来编写测试用例。

Appium是一个C/S架构,核心是一个Web服务器,它提供了一套REST的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在HTTP响应中返还给客户端。

5.Session

自动化始终围绕一个Session(会话)进行。客户端初始化一个Session来与服务端交互,不同的语言有不同的实现方式,但是它们最终都是发送一个POST请求给服务端,请求中包含一个JSON对象,其被称作“Desired Capabilities”。此时,服务端就会开启一个自动化的Session,然后返回一个Session ID,Session ID将会被用户发送后续的命令。

6.Desired Capabilities

Desired Capabilities是一些键值对的集合(比如一个map或者hash)。客户端将这些键值对发送给服务端,告诉服务端我们想要怎样测试。比如,我们可以把platformName capability设置为iOS,告诉Appium服务端,我们想要一个iOS的session,而不是一个Android的session。

7.Appium Server服务端

Appium Server是用Node.js写的,我们既可以用源码编译,也可以从NPM直接安装。

Appium服务端有很多语言库,如Java、Ruby、Python、PHP、JavaScript以及C#等,这些库都实现了Appium对WebDriver协议的扩展。当使用Appium的时候,你只需使用这些库代替常规的WebDriver库就可以了。

8.Appium Clients客户端

此客户端的概念不是我们传统意义上的客户端,更好的理解方式是一个扩展的WebDriver协议库,当你用自己喜欢的语言写case时,会将该语言扩展的WebDrvier库添加到自己的环境中,这时你可以把它理解为这就是个客户端。

Appium Clients客户端的安装包如下。

Mac机器上直接运行Appium.dmg;Windows机器上运行Appium.exe。

9.Appium Android/iOS工作原理

API接口调用Selenium的接口,Appium Server接收WebDriver标准请求,解析请求内容,调用对应的框架响应操作。代码将DesiredCapability中的键值对组合成一个JSON,然后通过HTTP协议发送到Appium服务器创建一个session。代码与Appium的所有交互都是围绕着这个session进行的。session创建成功后,Appium再通过USB接口与手机之间创建TCP连接,先安装一些服务端App,比如Android API 4.2+是uiautomator,Android 2.3+是Instrumentation;如果是iOS,则是UiAutomation。手机的操作都是由Appium发送指令到uiautomator,然后再由uiautomator进行控制的。

Appium原理图如图1.4所示。▲图1.4

Appium的核心是一个遵守REST设计风格的Web服务器,它接收客户端的连接和命令,在手机设备上执行命令,然后通过HTTP的响应收集命令执行的结果。这种架构给我们提供了很好的开放特性:只要某种语言有HTTP客户端的API,我们就可以通过这个语言写自己的测试代码。1.6 测试框架

TestNG简介(参考TestNG官方资料)

TestNG是一款基于Java的测试框架,被设计用于解决大部分的测试需求,涵盖单元测试(测试一个单独的类)和集成测试(测试由几个类、几个包甚至有几个框架组成的系统)两种测试方式。

一般情况下,一个测试通常需要以下三步:(1)写出你需要测试的业务逻辑,并在你的代码中加上TestNG注解。(2)在TestNG.xml或build.xml中加上测试信息(例如,你需要运行的类名、组名等)。(3)运行测试。

一个suite使用一个XML文件来定义。该suite可以包含一个或多个test,且该suite使用标签来定义。

一个test使用标签来定义,该test可以包含一个或多个TestNG类。

一个TestNG类就是一个Java类,它至少包含一个TestNG注解。一个TestNG类使用标签来定义,可以包含一个或多个方法。

一个测试方法就是一个在你的代码中使用@test注解标注的Java方法。

一个TestNG测试可以使用@BeforeXXX或@AfterXXX注解,并被配置为用于在某一切入点之前或之后执行一些代码逻辑,这些切入点可以是上述所列项中的任意一项。

下面简要地介绍一下TestNG中的注解进行。● @被标注的方法将在本Suite中的所有测试运行之BeforSuite:前运行。● @被标注的方法将在本Suite中的所有测试运行之AfterSuite:后运行。● @被标注的方法将在本测试运行之前运行。BeforeTest:● @被标注的方法将在本测试运行之后运行。AfterTest:● @被标注的方法将在本Groups中的所有测试运行BeforeGroups之前运行。:● @被标注的方法将在本Groups中的所有测试运行AfterGroups之后运行。:● @被标注的方法将在本Class中的所有方法执行之BeforeClass前运行。:● @被标注的方法将在本Class中的所有方法执行之AfterClass:后运行。● @BeforeMetho被标注的方法将在每一个测试方法前执行。d:● @AfterMethod被标注的方法将在每一个测试方法后执行。:

你可以使用多种不同的方式运行TestNG,例如,可以使用testing.xml文件、Ant或命令行。

你可以在testng.xml内部定义新的组,并且可以在属性中增加其他信息例如,是否平行运行测试,使用了多少线程,是否运行JUnit测试等。

另外,TestNG的详细介绍还包括执行测试、嵌套测试、忽略测试、组测试、异常测试、依赖测试、参数化测试,以及测试结果报告等,读者可查找并参考TestNG官方的相关文档资料。1.7 自动编译部署工具

本节内容本应在第11章结合Jenkins学习,但由于第3章代码中涉及Ant的内容,所以提前介绍一下,读者也可以跳过本节,等环境搭建好,demo运行起来后再来学习这部分内容。

1.Ant简介(参考Ant官方资料):

一:Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,一般集成到Jenkins中,多用于Java环境中的软件开发。在实际软件开发中,有很多地方都可以用到Ant。Ant的升级版是Maven,大家也可以使用Maven来代替Ant。

Ant是Apache软件基金会JAKARTA目录中的一个子项目,它的优点如下。(1)跨平台性:Ant是由纯Java语言编写的,所以具有很好的跨平台性。(2)操作简单:Ant由一个内置任务和可选任务组成,用Ant任务就像在DOS中写命令行一样。Ant通过调用target树,可以执行各种task,每个task实现了特定接口对象。Ant运行时需要一个XML文件(构建文件)。(3)维护简单、可读性好、集成简单:由于Ant构建文件时用的是XML格式的文件,所以不仅易于维护和书写,而且结构十分清晰。由于Ant有跨平台性和操作简单的特点,因此它很容易集成到一些开发环境中去。

二:Ant的构建文件,当开始一个新的项目时,首先应编写Ant构建文件。构建文件定义了构建过程,并被团队开发中的每个成员使用。Ant构建文件默认名为build.xml,也可以取其他的名字,只不过在运行的时候,需要把这个名字当作参数传给Ant。构建文件可以放在任何位置,一般做法是放在项目的顶层目录中,这样可以保持项目的简洁和清晰。一个典型的项目层次结构如下所示:(1)src存放文件。(2)class存放编译后的文件。(3)lib存放第三方JAR包。(4)dist存放打包及发布后的代码。

Ant构建文件是XML文件。每个构建文件定义一个唯一的项目(Project元素),每个项目下可以定义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行它们所依赖的目标。每个目标中可以定义多个任务,目标中还定义了所要执行的任务序列。Ant在构建目标时必须调用所定义的任务。任务定义了Ant实际执行的命令。Ant中的任务可以分为三类:(1)核心任务。核心任务是Ant自带的任务。(2)可选任务。可选任务是来自第三方的任务,因此需要一个附加的JAR文件。(3)用户自定义任务。用户自定义任务是用户自己开发的任务。

Ant的配置文件为build.xml,读者可结合本书第11章Jenkins持续集成时使用。

本书对Ant命令、Ant脚本、标签、使用节点、元素和属性、命令指令、Ant编译打包、运行工程等不做详细讲解,读者可自行查找官方资料。

2.Svn简介(参考Svn官方资料)

SVN是一个自由、开源的版本控制系统,是项目组人员存放在代码等文件的中心版本库,记录每一次文件和目录的修改。Subversion允许把数据恢复到早期版本,或是检查数据修改的历史。Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上进行操作。

我们把测试开发的源代码存放在SVN上,然后结合Jenkins进行持续集成构建时使用。

安装文件路径:http://subversion.apache.org/packages.html。第2章Android自动化环境搭建2.1 Android搭建的简要步骤

Android搭建的简要步骤如下:

1.安装JDK,配置JDK环境变量。注意一下电脑是32位还是64位,需要与之对应。

2.安装Eclipes和火狐Selenium IDE,注意一下电脑是32位还是64位,需要与之对应。

3.加入jxl、log4j、Selenium、Gson和Java-Client包。

4.加入JUnit包,创建JUnit测试类。

5.加入TestNG包,创建TestNG测试类TestNG.xml。

6.安装Ant,配置Ant环境变量build.xml。

7.安装Jenkins、Tomcat,配置Tomcat环境变量。

8.安装Android-SDK-Windows。

9.安装Appium。

10.配置Android环境变量。

Android自动化几个关键点如下:(1)抓取页面控件元素,使用工具android-sdk-windows\tools>uiautomatorviewer. bat。(2)安装App软件,使用工具android-sdk-windows\platform-tools>adbinstall Aoaio.apk。(3)获取App入口,使用方法android-sdkwindows\tools aaptdump badging E:\apk\es3.apk,获取入口后写入代码配置文件中内容类似如下:capabilities.setCapability("appPackage", "com.cs.aola");capabilities.setCapability("appActivity", ".ui.StartActivity")(4)安装Android,使用工具eclipseMacketplace。(5)搭建自动化测试框架Appium。(6)在Android真机上测试时,由于模拟器适配,测试意义不大,因此不再赘述,感兴趣的读者可以研究一下。对于使用android对应的版本以及android的API,Android 4.2不支持resources id,所以需要Android 4.4以上版本。(7)root安卓手机,在cmd中输入adb devices,看看设备是否连接成功。(8)无线连接运行adbWireless;adb connect 192.168.XX.XX;,即可安装无线运行,由于手机必须root,因此平时一般可以直接用数据线连,不用无线连接运行。2.2 在Windows上搭建Android自动化环境

Appium测试环境的搭建相对比较烦琐,相信不少初学者都花了很多时间在环境搭建上,所以本书对这部分内容单独进行讲解。Appium服务端环境

1. Appium服务端环境(1)安装Node.js

下载Node.js安装包(http://nodejs.org/download/),选择最新版本安装,如图2.1所示。▲图2.1

安装后,测试安装是否成功。运行cmd,输入node -v,如图2.2所示。▲图2.2

安装文件路径:https://pan.baidu.com/s/1pKLwEFp。(2)安装Android的SDK

安装Android的SDK包(http://developer.Android.com/SDK/index.html),运行依赖SDK中的“Android”工具并确保安装了Level 17或以上版本的API。设置ANDRO ID_HOME系统变量为Android SDK路径,并把tools和platform-tools两个目录加到系统的Path路径中。

变量名:ANDROID_HOME

变量值:D:\android-sdk

变量名:Path

变量值:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\ tools;

安装文件路径:https://pan.baidu.com/s/1mi6PT9m(3)安装JDK

执行“下载→解压文件夹→安装操作”,并设置Java环境变量,执行“我的电脑→属性→高级→环境变量”命令,新建系统变量JAVA_HOME和CLASSPATH。

变量名:JAVA_HOME

变量值:C:\Program Files (x86)\Java\jdk 1.7.0_01

变量名:Path

变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

变量名:CLASSPATH

变量值:;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

测试环境安装成功:运行cmd,输入java -version,如果成功则出现Java信息,如图2.3所示。▲图2.3

安装文件路径:https://pan.baidu.com/s/1gf4Ym3L。(4)安装Apache Ant

安装Apache Ant(http://ant.apache.org/bindownload.cgi)。解压缩文件夹,并把路径加入环境变量。执行“我的电脑→属性→高级→环境变量”命令,新建系统变量ANT_HOME。

变量名:ANT_HOME

变量值:D:\apache-ant-1.8.2

变量名:Path

变量值:%ANT_HOME%\bin

测试Ant环境是否安装成功。运行cmd,输入ant,如果没有指定build.xml,则输出如图2.4所示。▲图2.4

运行cmd,输入ant -version,如果正常显示Ant的版本号,则说明Ant环境已搭建成功。

安装文件路径:https://pan.baidu.com/s/1c1IvthY。(5)安装.Net 4.5

安装文件路径:https://pan.baidu.com/s/1sl1qdgL。(6)配置并安装Android版的Appium客户端(http://appium.io/),并配置手机信息。如果是真机,则Capabilities部分的设置要填写准确。设置对应的PlatformVersion和Device Name。

注意,Device Name一定要与真机一致,既可以通过adb devices命令查找到后填写进去,也可以通过手机助手查看设备名称,然后填写进去。

运行代码前,单击图2.5中右上角的三角形图标,启动AppiumPlatformVersion。比如选4.3时,SDK一定要安装Android 4.3.1(API 18)。▲图2.5

安装文件路径:https://pan.baidu.com/s/1jHGhnxG。(7)安装Eclipse

设置IDE集成开发环境,注意Windows机器是32位还是64位,Eclipse版本需与之对应。

安装文件路径:https://pan.baidu.com/s/1dF0sBcP。(8)在Eclipse中安装TestNG

执行“help→nstall New SoftWare”操作,在Eclipse中安装TestNG组件,路径为http://beust.com/eclipse。

在安装TestNG组件时,因为有时访问Google需要“翻墙”,因此可以采用离线安装包进行安装。

安装方法:解压缩后覆盖Eclipse目录下相对应的文件或文件夹,注意路径一定要正确。

安装文件路径:https://pan.baidu.com/s/1bLhluA。(9)在Eclipse中安装SVN客户端

执行“help→Install New SoftWare”操作,在Eclipse中安装sub插件,路径为http://subclipse.tigris.org/update_ 1.6.x。

安装后连接到服务端,比如https://192.168.60.101/svn/。

SVN简介:SVN是代码版本控制管理工具,我们的源代码从Eclipse连接SVN,最终存储到SVN服务端,然后结合Jenkins配置集成,自动读取并编译源代码。(10)在Eclipse中安装Android插件ADT

执行“help→Install New SoftWare”操作,接着执行“Eclipse菜单中的Help→install new software→add Archive; ADT-23.0.7.zip”操作。

安装文件路径:https://pan.baidu.com/s/1sl2BZit。(11)在Eclipse中配置Android的SDK

执行“Eclipse菜单中的Window→Preferences”操作,进入如图2.6所示界面。▲图2.6

选择Android SDK解压后的目录,单击Apply按钮,单击“OK”按钮,安装文件路径:https://pan.baidu.com/s/1mi6PT9m。(12)安装安卓手机相应版本的API,单击图2.7中的SDK标志,弹出如图2.8所示界面,选中Android5.1.1和5.0.1API并安装它。▲图2.7▲图2.8(13)查找所测App包名Package和App入口Activity,可以通过以下方式:

● 请Android开发负责人提供。

● 到sdk→tools目录下的dmms查找日志中找。

● 运行cmd,然后输入adb shell,再输入logcat *:S ActivityManager:V。(14)查找安卓手机名adb devices,或者用手机助手,可以看到手机已连接,如图2.9所示。▲图2.9(15)新建名称,如myproject的工程项目,如图2.10所示。▲图2.10

单击Finish按钮,如图2.11所示。▲图2.11(16)导入项目文件

1)选择新建的工程名myproject,右击并进入如图2.12所示界面。▲图2.12

选择File System,单击Next按钮,弹出如图2.13所示界面。▲图2.13

然后勾选所有文件集,但不勾选.svn、.classpath、.project,单击Finish按钮。▲图2.14

2)重新导入lib下的jar包。

导入到已建好的工程,并右击工程名,执行“Properti→Libraries→Add External JARs”操作,弹出appautotestdemo目录lib子目录下所有的jar包,如图2.15所示。▲图2.15

单击“OK”按钮,此时可以看到myproject工程文件正常,没有显示红叉。接下来改配置文件,Appium手机信息与App信息一致就可以了。

当文件路径和原工程设置一致时,也可以直接导入工程文件,如图2.16所示,选第二项。▲图2.16

还可以按照第4章源代码,逐个新建文件并编写代码到myproject工程中。

接下来改配置文件,Appium配置、手机信息与App信息一致且正确就可以了。运行时首先保证能启动所要测试的App,然后再写登录demo用例,环境的搭建就完成了。

具体请阅读第4章源代码解析,主要有android_config.properties、testng.xml、AutoLoginTest.java文件以及Appium界面,还有SDK中的API等。2.3 在Mac机器上搭建Android自动化环境

首先准备好Mac机器、安卓手机以及待测App。

简要步骤参考如下,由于使用不常见,详细的本书就不介绍了:(1)安装JDK。(2)安装Eclipse。(3)安装SDK。(4)安装ADT。(5)安装Appium客户端appium.dmg。(6)在Mac命令窗,安装Appium服务端,设置Node.js环境变量:Hello node 127.0.0.1:8000。(7)在Mac命令窗,设置SDK环境变量步骤如下。

1)进入当前用户的home目录,创建文件:touch .bash_profile。

2)打开.bash_profile文件,对其内容进行编辑:open -e .bash_profile。

3)此时文本编辑器会打开一个文本,编辑加入以下内容: export PATH=${PATH}:/Users/apple/Library/Android/sdk/platform-tools export PATH=${PATH}:/Users/apple/Library/Android/sdk/tools

路径可根据SDK的安装目录进行修改(vi),保存文件(wq),关闭.bash_profile。

4)执行生效,更新刚配置的环境变量,赋予sudo权限执行,命令如下: sudo source .bash_profile

5)验证:输入adb并回车。如果未显示command not found,则环境变量设置生效。(8)验证配置是否能成功连接Android手机,命令如下:adb devices。(9)打开Eclipse新建项目,导入App自动化测试框架的源代码,进行验证。或者按照第4章源代码,逐个新建文件,并编写代码到myproject工程中。2.4 Android自动化测试运行(1)连接手机,开启手机调试模式,查看与电脑连接是否正常。(2)启动Appium,无错误日志。(3)在Eclipse中运行TestNG的代码脚本,可以看到在Appium客户端有值输出,在手机上也能看到自动化运行测试用例已经开始了。(4)查看测试结果。第3章iOS自动化环境搭建3.1 iOS环境搭建的简要步骤

1.设置JDK Java环境变量。

2.设置Eclipse IDE集成开发环境,把源代码导入到工程文件,参见第6章。

3.安装Xcode。

4.安装Node.js。

5.搭建Appium自动化测试框架。

6.设置brew mac环境。

7.安装wd。

8.sudo brew install --HEAD ideviceinstaller,手机版本设备安装。

9.iPhone手机设置→开发者→UI Automation开启。

10.获取SouceTree版本,单击3.1 Release版本管理客户端。

11.安装Git。

12.安装Xcode command line tools。

13.设计Ant编译、测试、部署自动化工具(基于Java使用)。

14.设置Jenkins(参见第9章,192.168.60.200:8080/Jenkins)。

15.申请开发者调试证书。3.2 iOS自动化环境搭建的详细步骤

Appium测试环境的搭建相对比较烦琐,不少初学者在此走过不少弯路,所以本书单独把它作为一章进行讲解。

首先是熟悉Mac电脑的使用习惯:命令行是Linux风格,界面则类似于Windows风格。

环境搭建步骤如下。(1)安装JDK,并配置环境变量,方法如下。

sudo vi/etc/profile在最后行加入如下内容: JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/" CLASS_PATH="$JAVA_HOME/lib" PATH=".:$PATH:$JAVA_HOME/bin"

保存退出后,执行生效,输入命令Source~/.bash_profile。

输入命令java -version,环境安装成功后如下所示:(2)安装Xcode、Xcode command line tools和iOS模拟器。

在App Store中下载xcode.dmg并安装。注意,要与Mac的OS X版本对应。由于App源代码是在Xcode开发环境中开发出来的,因此我们需要在Xcode里调试源码成功运行,并启动所要测试的App。源码的导入和调试可以找iOS开发负责人帮忙,模拟器安装如图3.1所示。▲图3.1(3)安装Homebrew: curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1

brew -v显示如下所示:(4)安装indeviceinstaller: brew install indeviceinstaller

ideviceinstaller -h显示如下所示:(5)安装Appium服务端Node.js: brew install node

node-v显示如下所示:(6)安装Appium客户端。双击安装包appium.dmg,或将它拖到Applications文件夹即完成安装。设置Appium环境变量,将appium.js和appium-doctor.js文件所在路径配置到PATH环境变量,如图3.2所示。▲图3.2

打开Appium客户端,如图3.3所示。▲图3.3(7)用npm安装wd: npm install wd(8)安装SourceTree、Git或SVN,然后取开发的App源代码: clonessh://zouhui@XXX.XXXXX.com:30020/mnt/repo/app

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载