#软件测试###浅谈几个UI自动化测试工具

这篇具有很好参考价值的文章主要介绍了#软件测试###浅谈几个UI自动化测试工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Selenium

一个web的自动化测试工具,相比QTP而言支持多种语言,QTP只支持VBS,支持多平台,支持分布式测试用例的执行。selenium主要使用的工具是WebDriver。

WebDriver有三个角色:工程师写的自动化测试代码;浏览器的驱动;浏览器。

从技术层面解释:

  1. WebDriver API(基于Java、Python、C#)等语言,对于python来说就是from selenium import webdriver;
  2. 浏览器的驱动(browser driver):每个浏览器都有自己的驱动,均已exe文件形式存在,比如谷歌的chromedriver.exe、火狐的geckodriver.exe;
  3. 浏览器本身:即软件本身。

一条selenium脚本执行时后端发生的事情:

  1. 对于每一条selenium脚本,一个http请求会被创建并且发送给浏览器的驱动;
  2. 浏览器驱动中包含了一个HTTP Server,用来接受这些http请求;
  3. HTTP Server接收到请求后根据请求来具体操控对应的浏览器;
  4. 浏览器执行具体的测试步骤;
  5. 浏览器将步骤执行结果返回给HTTP Server;
  6. HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。

为什么使用HTTP协议:因为HTTP协议是一个浏览器和Web服务器之间通信的标准协议,几乎每一种变成语言都提供了丰富的http libraries,这样就可以方便的处理客户端Client和服务器Server之间的请求request及响应response,WebDriver的结构中就是典型的C/S结构,WebDriver API相当于是客户端,而小小的浏览器驱动才是服务器端。

WebDriver基于的协议:JSON Wire Protocol,这个协议在http协议基础上,对http请求及响应的body部分的数据进一步规范。http中的body都是以JSON的形式存在并进行传送的,这样的话在Client和Server之间,只要是基于JSON Wire Protocol来传递数据,就与具体的脚本语言无关了,同一个浏览器的驱动既可以处理Java语言的脚本,也可以处理Python语言的脚本。

每个浏览器都有自己自动化测试接口,如打开网页、点击等;每个浏览器自己的webdriver实现,如chromedriver都封装了这些自动化测试接口,然后把这些操作以一个标准web restfull api暴露出来。

二、Appium

Appium:一个开源的,适用于原生或混合移动应用(hybrid mobile apps)的自动化测试工具,Appium应用WebDriver:JSON wire protocol驱动安卓和IOS移动应用。

支持多平台(Android、IOS等)。

支持多语言(python、java、ruby、js、c#等),appium选择了Client/Server的设计模式,只要client能够发送http请求给server,那么client用什么语言来实现都是可以的,这就是支持多语言的原因。

跨平台的,可以在OSX、windows和linux上运行。

appium扩展了WebDriver的协议。

Appium启动时会创建一个http请求,针对4723端口,脚本会告诉服务器我要做什么,服务端再去跟设备打交道,服务端和脚本可以不在一起,只要能访问到127.0.0.1:4723这个地址就可以。服务端和设备默认使用4724端口进行通讯,底层调用uiautomator工具,在测试的时候服务端会给设备扔一个jar包就是appiumbootstrap.jar,会启动这个包,启动之后会在手机上创建一个socket服务,暴露的就是4724的端口,相对于socket服务来说,appium服务端又是一个客户端。服务端的4724端口可以修改,设备上的不可以,服务端收到脚本传递过来的命令之后,通过电脑上的2724端口,向设备上的4724端口发送指令,appiumbootstrap.jar收到指令后回去完成点击、滑动等操作,完成之后再通过服务给服务端一个回应,服务端收到之后再返回给响应脚本。

Bootstrap.jar,监听appium发送过来的相关请求,并将请求转换成UiAutomator可以识别的命令发给UiAutomator进行处理。

Bootstrap是Appium在初始化时推送到Android手机上的一个UiAutomator测试脚本,该脚本的唯一一个测试方式是在手机端开启一个SocketServer(通信模块),监听appium从PC端发过来的命令,并发送给UiAutomator进行处理。

appium工作流程:脚本请求==》4723端口appium server==》解析参数给PC端4724端口==》发送给设备4724端口==》通过设备4724端口发给bootstrap.jar==》Bootstrap.jar把命令发给uiautomator。

三、uiautomator

uiautomator是谷歌在Android4.1版本发布时推出的一款用java编写的ui测试框架,基于accessibility服务,最大的特点是可以跨进程操作,可以使用uiautomator框架提供的一些方便的api来对安卓应用进行一系列的自动化测试操作,如点击、滑动、键盘输入、长按以及常用的断言方法等。

uiautomator是在手机上运行了一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些http接口封装成python库,python脚本执行每个操作都会转换成一个对http rpc服务的请求,http rpc服务接受这些请求,并调用原生uiautomator的api实现在手机上的操作。

ui自动化测试工具有哪些,单元测试,压力测试,测试工具,自动化,功能测试

 文章来源地址https://www.toymoban.com/news/detail-539064.html

android SDK4.3中提供了如下工具来支持UI自动化测试,uiautomatorviewer:一个图形界面工具来扫描和分析应用的ui控件。uiautomator:一个测试的java库,包含了创建UI测试的各种APi和执行自动化测试的引擎。

uiautomator1有两个缺点:测试脚本只能使用Java语言;测试脚本必须每次被上传到设备上运行。

uiautomator2诞生的背景:希望测试能够用更脚本化的语言,如python,每次所见即所得地修改测试、运行测试或者说能够在电脑上运行就能控制手机。

uiautomator2初期是在手机上运行一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些http接口封装成python库。

uiautomator2后期加强版:设备和开发机可以脱离数据线,通过wifi互联,代码重构和精简,扩充了toast,继承了openstf/minicap达到实时屏幕投屏,以及实时截图;集成了openstf/minitouch达到精确实时控制设备。

python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口,允许测试人员直接在PC上编写python的测试代码。

python-uiautomator2分为两个部分,python客户端,移动设备。

python端:运行脚本,并向移动设备发送HTTP请求。

移动设备:移动设备上运行了封装了uiautomator2的http服务,解析收到的请求,并转化成uiautomator2的代码。

 整个过程:

  1. 在移动设备上安装atx-agent(守护进程),随后atx-agent启动UIautomator服务(默认7912端口)进行监听;
  2. 在PC上编写测试脚本并执行(相当于发送http请求到移动设备的server端);
  3. 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行指定的操作。                       

 以下是我整理的一些学习资料,需要的朋友可以进群讨论!

ui自动化测试工具有哪些,单元测试,压力测试,测试工具,自动化,功能测试

 

到了这里,关于#软件测试###浅谈几个UI自动化测试工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android自动化测试】Ui Automator技术(以对QQ软件自动发说说为例)

    描述:UI Automator 是一个界面测试框架,适用于整个系统上以及多个已安装应用间的跨应用功能界面测试。这里我将会拿 QQ软件的说说模块进行测试 。 知识点:Ui Automator 难度:初级 效果 1、UiDevice 类 用于在运行目标应用的设备上访问和执行操作,同时还能进行以下操作: 改

    2024年02月12日
    浏览(62)
  • 推荐几个高质量的软件测试实战项目

    教程:软件测试项目实战《黑马头条》全通关 资料链接:百度网盘 请输入提取码 提取码:rell 项目概况 黑马头条是一款汇集科技资讯、技术文章和问答交流的用户移动终端产品,类似于今日头条的运营模式,用户通过该产品,可以获取科技资讯,发表或学习技术文章,讨论

    2023年04月09日
    浏览(82)
  • 有了这几个软件安全测试工具,编写安全测试报告再也不愁

    软件的安全是开发人员、测试人员、企业以及用户共同关心的话题,尤其是软件产品的使用者,因为系统中承载着用户的个人信息、人际互动、管理权限等各类隐私海量关键数据。软件安全测试工作不仅是为了用户,更牵扯到许多的利益共同体。因此软件安全测试必不可少,

    2024年02月03日
    浏览(46)
  • 软件测试培训了几个月,找到工作了,面试经验分享给各位

    功能方面:问的最多的就是测试流程,测试计划包含哪些内容,公司人员配置,有bug开发认为不是 bug怎么处理,怎样才算是好的用例,测试用例设计方法(等价类,边界值等概念方法),包含哪些内 容,怎样保证用例覆盖全面,马上要上线了发现bug怎么处理,怎么判断产品

    2024年02月03日
    浏览(111)
  • 软件测试:功能测试-接口测试-自动化测试-性能测试-验收测试

    软件测试的主要流程 一、测试主要的四个阶段 1.测试计划设计阶段 :产品立项之后,进行需求分析,需求评审,业务需求评级,绘制业务流程图。确定测试负责人,开始制定测试计划; 2.测试准备阶段 :各成员编写测试用例、先小组内评审、后会议评审,测试样机和配件,

    2024年02月08日
    浏览(63)
  • 软件测试 -- 自动化测试(Selenium)

            在这里记录一下  自动化测试 -- Selenium 的一些基础知识点,只记录方法。 Selenium 浏览器操作 Selenium 元素定位(包含 Web 表单) findElement 和 findElements         findElement 和 findElements 都可以用于定位元素,它们都需要传入一个 By 类型,但是他们的返回值不同,区

    2024年04月22日
    浏览(64)
  • 【软件测试】自动化测试selenium

    目录 一、什么是自动化测试 二、Selenium介绍 1、Selenium是什么 2、Selenium的原理 三、了解Selenium的常用API 1、webDriver API   1.1、元素定位 1.1.1、CSS选择器 1.1.2、Xpath元素定位 1.1.3、面试题  1.2、操作测试对象 1.3、添加等待  1.4、打印信息  1.5、浏览器的操作 1.6、键盘事件 1.7、鼠

    2024年01月17日
    浏览(63)
  • 浅谈UI自动化测试

    最近一直在学习python,正好部门技术结构调整,就开始了点工向UI自动化测试的转变,我要说瞌睡来了就掉枕头么? 不过还好,可以将python的学习成果在自动化测试中实践。。。 1、about自动化测试 定义 :把人为驱动的测试转化为机器执行的一种过程,重点在于持续集成这个

    2024年02月09日
    浏览(44)
  • 软件测试/自动化测试/测试开发/性能测试经典好书推荐

    目录 前言 测试理论与实践 性能测试 安全测试 自动化测试 编程语言与开发技能 管理技能 软件测试入行容易进阶难。从测试小白成长为测试经理、总监级别人才,要跨越长长的技术栈升级之路,挑战非常高的综合能力要求。 大牛都是相似的:具备扎实的测试方法论基础,能

    2024年02月09日
    浏览(68)
  • 软件测试之单元测试自动化入门基础

    所谓的单元测试(Unit Test)是根据特定的输入数据,针对程序代码中的最小实体单元的输入输出的正确性进行验证测试的过程。所谓的最小实体单元就是组织项目代码的最基本代码结构: 函数,类,模块 等。在Python中比较知名的单元测试模块: unittest pytest doctest nose 所谓的测试

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包