百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

软件测试工程师必备Web UI自动化测试用例脚本编写技巧

toyiye 2024-06-21 12:28 11 浏览 0 评论

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?

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

请关注+私信回复:“测试”就可以免费拿到软件测试学习资料,同时进入群学习交流~~

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码