51Testing软件测试论坛

标题: Web UI自动化测试用例脚本编写技巧 [打印本页]

作者: lsekfe    时间: 2021-6-7 10:20
标题: Web UI自动化测试用例脚本编写技巧
 robotframework-ride是一款开源的通用的自动化软件。功能强大、应用灵活,适用于功能测试、协议测试、跨系统测试、webUI页面测试等,今天就来和大家聊聊关于webUI自动化测试的一些使用技巧或功能吧。

  close browser关键字配置不可缺少
  测试webUI,不可避免的就是打开浏览器,试想一下,我们每跑一个自动化用例都打开一次浏览器而不关闭,当我们执行了十几个甚至更多的用例时,我们的桌面上将会打开十几个甚至更多的浏览器,这样我们的电脑性能将会被拖慢。
  如果我们手工去关闭,不小心就可能关闭错误把正在运行的关闭掉,导致测试执行失败,退一步来说,自动化执行的时候还要人工干预,这也不是自动化的目的了,所以在写测试用例执行脚本的时候,close browser关键字是不可少的。
  那么这个关键字在哪里设置?它是设置在我们测试用例脚本执行上方的teardown事件中,如下图:


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

  超时设置不可缺少
  我们在手工测试的时候,由于系统未经过验证或环境了问题,经常会遇到打开网页或查询的时候,网页一直在转圈圈,无法打开或查询到我们想要的内容,跑自动化的时候这种现象也是不可避免。
  手工测试的时候,时间长了我们可以人工干涉,强制关闭页面,自动化的时候,要怎么办呢?
  那就要用到超时(timeout事件)设置了,当然这个时间也不是随便设置的,要根据这个网页实际打开的时间和我们的性能要求来设置的,如果涉及到查询花费时间比较长的时候这个时间也要相对长一些,避免用例没执行完毕,任务失败。
  一般来说我们设置这个时间要比实际打开网页或查询出结果的时间多几秒就可以了,因为太接近很可能会因为后台的一些进程没处理完毕,导致我们的任务执行失败。
  比如我们打开一个网页的时间是5秒钟,我把超时时间就设置为5秒,这样执行用例到最后失败了,就是因为这个时间设置的太接近了。



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



  必要的变量设置可以提高工作效率节省时间
  在测试用例编写的时候,我们会发现有些关键的信息我们是经常用到的,比如用户名和密码。
  不管我们测试哪个页面功能,我们首先要做的就是输入用户名和密码登录系统,如果我们每次都去输入麻烦不说,还很浪费时间。
  另外就是密码是需要不定期修改的,每次修改后我们的用例的密码肯定也要跟着变的,这个时候如果我们一个个的去查找用例修改密码显然也是很浪费时间的事情,还有可能会存在没有检查修改到的问题,那怎么办呢?
  ride页面给我们提供了一个变量设置的功能,我们可以把这些频繁使用存在变化的参数设成变量,每次引用或修改的时候直接修改相应的变量值就可以了,避免查找和重复输入的工作。
  具体操作方法是选中用例套件,单击右键,在弹出的菜单中单击new list variable。


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


  自定义关键字减少重复动作的重复录入
  在测试网页系统的时候,每一个测试用例必不可少的就是登录系统,所以在执行相关用例前,我们首先要登录系统,每一个用例都要写相同的登录系统脚本,未免太浪费时间。
  这时候我们需要借ride中的创建关键字功能,把重复的动作定义为一个关键字直接拿来用。
  如我把登录163邮箱系统这个测试用例编写好之后,选中所有编写行,单击右键,选中扩展关键字选项,就会弹出下图的页面,在此页面我们可以自行给新创建的关键字命名。



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



  在以后的用例编写脚本中,有要登录的时候都可以用这个关键字来实现,当然如果我们编写脚本时还有类似的功能模块,同样的也可以定义成关键字来用,好了今天就和大家聊这么多。
  PS:有同学可能会问,为什么不用create keyword?
  其实也可以用的,但用这个选项就不会有关键字命名那个弹框弹出来,就是系统默认的名字,这个名字有可能就会是编写行的第一个关键字,就会造成关键字重复,同时也不利于我们后期的使用,还是要修改,何不一步到位。





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2