• 12
  • 12
分享

  robotframework-ride是一款开源的通用的自动化软件。功能强大、应用灵活,适用于功能测试、协议测试、跨系统测试、webUI页面测试等,今天就来和大家聊聊关于webUI自动化测试的一些使用技巧或功能吧。

  close browser关键字配置不可缺少

  测试webUI,不可避免的就是打开浏览器,试想一下,我们每跑一个自动化用例都打开一次浏览器而不关闭,当我们执行了十几个甚至更多的用例时,我们的桌面上将会打开十几个甚至更多的浏览器,这样我们的电脑性能将会被拖慢。

  如果我们手工去关闭,不小心就可能关闭错误把正在运行的关闭掉,导致测试执行失败,退一步来说,自动化执行的时候还要人工干预,这也不是自动化的目的了,所以在写测试用例执行脚本的时候,close browser关键字是不可少的。

  那么这个关键字在哪里设置?它是设置在我们测试用例脚本执行上方的teardown事件中,如下图:

2-1.png

  这样设计好之后,我们执行完测试用例,浏览器就会自动关闭,不会出现电脑上浏览器堆积的现象。

  超时设置不可缺少

  我们在手工测试的时候,由于系统未经过验证或环境了问题,经常会遇到打开网页或查询的时候,网页一直在转圈圈,无法打开或查询到我们想要的内容,跑自动化的时候这种现象也是不可避免。

  手工测试的时候,时间长了我们可以人工干涉,强制关闭页面,自动化的时候,要怎么办呢?

  那就要用到超时(timeout事件)设置了,当然这个时间也不是随便设置的,要根据这个网页实际打开的时间和我们的性能要求来设置的,如果涉及到查询花费时间比较长的时候这个时间也要相对长一些,避免用例没执行完毕,任务失败。

  一般来说我们设置这个时间要比实际打开网页或查询出结果的时间多几秒就可以了,因为太接近很可能会因为后台的一些进程没处理完毕,导致我们的任务执行失败。

  比如我们打开一个网页的时间是5秒钟,我把超时时间就设置为5秒,这样执行用例到最后失败了,就是因为这个时间设置的太接近了。

2-2.png

2-3.png

  然后我们把这个时间修改为9秒,保存后再次执行用例,用例跑成功了。

2-4.png

2-5.png

  必要的变量设置可以提高工作效率节省时间

  在测试用例编写的时候,我们会发现有些关键的信息我们是经常用到的,比如用户名和密码。

  不管我们测试哪个页面功能,我们首先要做的就是输入用户名和密码登录系统,如果我们每次都去输入麻烦不说,还很浪费时间。

  另外就是密码是需要不定期修改的,每次修改后我们的用例的密码肯定也要跟着变的,这个时候如果我们一个个的去查找用例修改密码显然也是很浪费时间的事情,还有可能会存在没有检查修改到的问题,那怎么办呢?

  ride页面给我们提供了一个变量设置的功能,我们可以把这些频繁使用存在变化的参数设成变量,每次引用或修改的时候直接修改相应的变量值就可以了,避免查找和重复输入的工作。

  具体操作方法是选中用例套件,单击右键,在弹出的菜单中单击new list variable。

2-6.png

  就可以到变量创建页面了,创建好的变量在测试套件下就能看到如下图。

2-7.png

  自定义关键字减少重复动作的重复录入

  在测试网页系统的时候,每一个测试用例必不可少的就是登录系统,所以在执行相关用例前,我们首先要登录系统,每一个用例都要写相同的登录系统脚本,未免太浪费时间。

  这时候我们需要借ride中的创建关键字功能,把重复的动作定义为一个关键字直接拿来用。

  如我把登录163邮箱系统这个测试用例编写好之后,选中所有编写行,单击右键,选中扩展关键字选项,就会弹出下图的页面,在此页面我们可以自行给新创建的关键字命名。

2-8.png

2-9.png

  如这次窗口输入login163mail,点OK保存后,在左方的列表就会出现一个名为login163mail的配置文件,原来的登录测试脚本也变成了login163mail这一行关键字。

2-10.png

2-11.png

  在以后的用例编写脚本中,有要登录的时候都可以用这个关键字来实现,当然如果我们编写脚本时还有类似的功能模块,同样的也可以定义成关键字来用,好了今天就和大家聊这么多。

  PS:有同学可能会问,为什么不用create keyword?

  其实也可以用的,但用这个选项就不会有关键字命名那个弹框弹出来,就是系统默认的名字,这个名字有可能就会是编写行的第一个关键字,就会造成关键字重复,同时也不利于我们后期的使用,还是要修改,何不一步到位。



作者:薇薇   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   据长城汽车官方消息,近日,公司旗下芯动半导体与意法半导体在深圳签署战略合作协议,稳定 SiC 芯片供应。  据介绍,新能源汽车逐渐由 400V 向 800V 高压平台推进,以满足消费者日常出行和长途旅行的市场需求。SiC 芯片(碳化硅)因其出色的耐高压、高结温应用等特性,被广泛应用于电驱逆变器、电动汽车车载充电(OBC)和直流-直流变换器(DC-DC)等关键零部件中。  长城汽车表示,此次与意法半导体就 SiC 芯片业务签署战略合作协议,将进一步推动长城汽车垂直整合,加大新能源发展力度。  意法半导体公司去年 12 月还与理想汽车签署了一项碳化硅(SiC)长期供货协议。按照协议,意法半导体...
            0 0 613
            分享
          • 一、代码覆盖率通常我们在做单元测试的时候会接触到代码覆盖率的概念,通过在单元测试的过程中收集代码覆盖率去判断测试用例是否充分,去更精准的定位问题。而对于功能测试或者接口测试比较少的去关注覆盖率数据,功能测试时覆盖率的收集也是比较困难的。然后对于功能测试而言进行代码覆盖率的收集有利于测试工程师去判断哪些分支没有被覆盖,判断是否是设计用例的时候没有做到覆盖,又或者是由于存在bug使得无法覆盖到,从而更精准的去定位bug的位置,去分析问题,节省时间。二、工具简介对于java的代码覆盖率的收集,比较常用的工具有emma、jacoco,它们都是免费的代码覆盖率工具。emma目前已经不维护,EclEmma...
            0 0 2176
            分享
          • 注:文章来自对相关测试书籍的思考。【原文】从狭义上讲,软件测试用于确认软件的质量,一方面是确认软件做了所期望的事情,另一方面是确认软件以正确的方式来做这个事情。【细品】:我们通常所以为的软件的质量是不是由测试保证的?其实不然,测试人员仅仅是确认、检查软件的质量是否符合某个标准,而并非是保证软件质量的,保证软件质量的人还是在于开发。什么是做正确的事和正确的做事【原文】从广义上讲,软件测试不仅是在测试产品本身,而且还测试软件开发生命周期的过程。如果一个软件产品开发完成之后发现了很多问题,则说明此软件开发过程很可能是有缺陷的。因此,软件测试是完善和提升软件开发过程的质量关键。【细品】:这段所说测试不...
            0 0 1124
            分享
          •   引言  在进入今天的内容前, 先想几个问题:  什么是测试计划?  什么是性能测试计划?  在你的性能知识领域中, 你认为性能测试计划应该包含哪些内容?  因为作为企业的金牌面试官, 经过我面试的求职者,没有四位数,至少也有个位数。无论是性能测试的小白还是高级性能测试工程师,几乎都没有认真的或者完整的去实施过性能测试计划。  其实,导致这种现在的原因,无非两种:  1、企业 不太注重 性能测试;  2、测试人员本身的能力不足。  看到这里, 你是不是会说, 你看:不是我不专业,不是我不想写专业的性能测试计划,只是我的企业对性能测试计划的要求不高。  作为一名性能测试工程师,你的专业度,一定...
            0 0 1199
            分享
          • 1.HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。2.如何理解HTTP协议是无状态的HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是说,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表...
            0 0 1776
            分享
      • 51testing软件测试圈微信