AirtestIDE⾃动化测试1-框架简介
前⾔
如何让 0 基础的测试⼈员快速掌握⾃动化测试?这就是 Airtest 团队五年来⼀直在努⼒:不断改进⼯具链,以使⽤户能够以⾮常低的门槛执⾏⾃动化测试。
⽆论您是测试新⼿还是刚开始学习⾃动化的测试⼯程师,我都相信本教程可以帮助您阐明⾃动化测试的背景并掌握⾃动化测试的学习路径。我们也希望通过Airtest的动⼿教程来帮助您开始⾃动测试。
学习后,我们希望您能掌握以下内容:
了解⾃动化的主流框架和⼯具
Airtest和Poco⼊门教学
在Android设备上执⾏⾃动化测试
在IOS设备上执⾏⾃动化测试
⼩程序和游戏的⾃动化测试
如何编写强⼤的兼容性⾃动化脚本
......
需要说明的是,本教程中的测试和⾃动化,均指软件测试和软件⾃动化,硬件和⼯业⽅⾯的测试与⾃动化均不包含在本教程范畴内。
准备好了吗?⼀起开始吧。
转⾃官⽅⽂档地址
Airtest 框架简介
Airtest Project是⽹易开发的⼀个开源⾃动化测试框架。与其他⾃动化测试框架相⽐,Airtest项⽬具有以下两个优点:
⼤⼤降低了编写和维护⾃动化脚本的成本
Airtest 希望以所见即所得的⽅式完成脚本的录制。即使测试⼈员不知道脚本,他们也可以通过正常的单击和拖动操作⾃动记录脚本,这可以⼤⼤降低企业和项
⽬的⾃动维护成本。
解决游戏测试的痛点
Airtest Project希望通过⽀持不同的游戏引擎,成为⼀个真正的跨引擎和跨平台的⾃动化测试平台。
如您所见,底部的主要测试框架是Airtest和Poco。两者之间的区别是:
Airtest:这是基于图像识别原理的基于Python的跨平台UI⾃动化测试框架,适⽤于游戏和应⽤程序。
Poco:基于UI控件搜索的⾃动化测试框架。它的核⼼优势在于,它不仅⽀持Android和IOS,还⽀持游戏。它还⽀持⼩程序,⼩游戏和H5应⽤程序。
谈谈测试
软件测试可以理解成为⼀个⽤来鉴定软件是否符合需求以及是否有缺陷的过程。根据不同的维度,软件测试⼜可以细分成为不同的测试类型。
如果按照测试⽅法划分,则可以分为:
⿊盒测试:最基本的功能测试,它不关⼼内部代码的实现,⽽仅验证输⼊和输出的正确性。
⽩盒测试:基于逻辑驱动或者基于代码测试,打开代码内部的实现,去研究源代码中的接⼝或者具体实现的正确性。
灰盒测试:上述两个测试之间的测试。
根据测试⽬的,可以分为:
功能测试:对产品和模块的各个功能进⾏测试
性能测试:对系统的各项性能指标进⾏测试
压⼒测试:测试软件或系统的负载能⼒,挖掘隐患
兼容性测试:对产品和软硬件之间的兼容性进⾏测试,⽐如软件在各种不同安卓机型上的兼容性。
安全性测试:通过不同⽅法发现软件的安全性问题,⽐如信息泄露、⾮法使⽤、恶意破坏等等。
其他专项测试:⽐如弱⽹络测试、耗电量测试、流畅度测试等等
最后,如果根据软件开发阶段来划分,每个阶段⼜可以做:¶
单元测试:对程序中的独⽴模块进⾏⽩盒测试,⽬的是检验软件基本组成单位的正确性
集成测试:通过对单元模块进⾏组合测试,⽬的是验证单元模块之间的接⼝是否正确
系统测试:对整个系统进⾏完整测试,验证整个系统的正确性与合规性
回归测试:当软件发⽣变更的时候,对这次变更可能受影响的功能模块进⾏验证
验收测试:测试的最后⼀个阶段,软件发布或者上线前确保软件质量
其他常⽤测试概念:
冒烟测试:冒烟测试是对软件最基本的功能进⾏简单测试,低成本的判断软件是否可测
冒烟测试来源于硬件的测试,当电路板做好后,⾸先会进⾏⼀次加电,如果没有冒烟才会开始进⾏接下来的测试,否则说明产品没有达到最基本的质量要求,需要重新制作。
探索性测试:探索性更多的依赖测试⼈员的个⼈经验或者特长,依靠的是测试⼈员的主观能动性。
探索性测试的重要性可以参考游戏测试领域,千千万万的玩家会在各种意想不到的环境下以意想不到的⽅式来进⾏游戏,所以游戏的测试者不仅要掌握系统的测试⽅法论、先进的测试⼯具以外,还要有丰富的游戏经验和探索的测试思维。
讲了这么多,所有的测试,通过⼿⼯完成是⼀种简单⽽原始的⽅式,但是由于测试过程中会存在⼤量的重复性⼯作,⽐如每次变更之后都要执⾏⼀次的回归测试,⽐如要在⼏百台⼿机上执⾏相同⽤例的兼容性测试,所以在⼯作过程中,我们希望能够不断的⽤代码来帮助我们完成测试,也就是⾃动化测试。
主流⾃动化测试框架介绍
软件测试的⾃动化⼀般可以分为3层 * 代码层的单元测试 * 接⼝层的集成测试 * UI 层的测试
代码级⾃动化
代码层的⾃动化⼀般指针对代码进⾏的单元测试,⽐较常⽤的单元测试框架⽐如Java的Junit, Python的PyUnit等等,由于这部分并⾮本教程重点,这⾥就不详细展开,需要的同学可以⾃⾏学习。
接⼝层⾃动化
接⼝层的⾃动化测试主要是对系统和组建之间的接⼝进⾏测试,主要⽬标是校验数据的交换和业务的流程,接⼝测试可以测试功能、也可以测试性能、测试压⼒、测试安全等等。由于接⼝⽐代码单元要稳定的很多,所以⾃动化脚本维护成本更低、收益也更⼤,具有不错的性价⽐。常⽤的测试⼯具有以下:
Jmeter:由Apache组织开发的基于Java的接⼝测试、压⼒测试和性能测试⼯具,起初为Web测试⽽设计,后来逐步扩展到其他领域,可以⽤来测试静态或者动态的资源。LoadRunner:HP公司提供的⼀款性能测试和压⼒测试⼯具,可以通过模拟成千上万⽤户实施并发操作来测试系统性能,并且有详细的测试结果分析,是性能测试和压测的不错选择。
Robot Framework: ⼀款开源的⾃动化测试框架,具有很好的可扩展性。框架⽤python编写,同时也提供跨平台⽀持。
Postman:简单⽅便且功能强⼤的接⼝调试⼯具,API调试⾸选。
UI层⾃动化
基于UI层的⾃动化测试框架要复杂很多,从平台种类来讲,有Windows,Linux,Android,Ios,Web,还有最新的⼩程序等等,下⾯会简单的和⼤家捋⼀遍主流UI层⾃动化框架的原理、架构以及跨平台能⼒。
Appium
Appium是⼀个开源的⾃动化测试⼯具,⽀持IOS,Android,Windows和Mac应⽤程序。
小程序开发一键生成平台源码跨平台
Appium可以在OSX,Windows和Linux桌⾯上运⾏。
跨语⾔
appium采⽤了C/S的设计模式,扩展了WebDriver协议,因此Client⽤Python、Java、Js/Nodejs、Ruby、OC、C#等各种语⾔来实现。
原理介绍
Appium的核⼼是⼀个遵守REST设计风格的Web服务器,他会⽤来接受客户端的连接和指令。由于统⼀的接⼝设计,客户端便可以⽤多种语⾔来实现,从⽽⽤⾃⼰喜欢的语⾔来实现测试⽤例。
服务端收到测试指令后会发送给设备,在设备层则使⽤了设备商提供的原⽣测试框架,⽐如IOS的XCUITest Driver和UIAutomation Driver, 安卓的UIAutomator和UIAutomator2等等。
Selenium
Selenium是⼀款开源的Web应⽤⾃动化测试⼯具,可以直接运⾏在多种浏览器平台中,就像⽤户真实操作⼀样。
跨平台
同样,Selenium也可以在OSX,Windows以及Linux桌⾯上运⾏。
浏览器⽀持
Firefox,Chrome,IE,Edge,Opera,Safari
原理介绍
演⽰视频
整个框架都配备了⾮常实⽤的IDE。借助AirtestIDE,您可以轻松完成脚本的录制,测试任务的执⾏以及最终测试报告的⽣成。有关完整过程,请观看演⽰视频:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论