Robotframework学习之语法篇

发表于:2021-1-29 09:39  作者:测试的锅仔   来源:51Testing软件测试网原创

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: RobotFramework 自动化测试框架

  摘要:继之前的《搭建篇》以及《目录及界面操作》篇之后,今天来分享下Robotframework的基本语法,正所谓“不积跬步无以至千里”,学习Robotframework和程序语言一样,都得需要从基本语法开始学习,Robotframework语法和程序语言一样,主要包含变量、循环、分支等基本语法。
  1.变量
  Robotframework主要的变量有两类,每个变量都可以用变量标识符{变量名}来进行命名,Robotframework在日常使用过程中主要分为“Scalar”和“List”两种变量。其中“Scalar”的变量标识符为“$”,而“List”的标识符为“@”。
  其实在Robotframework中没什么特别声明的变量,因为Robotframework的底层是Python,因此两者之间的语法也是类似的,变量不需要特别声明,只需要进行初始化赋值即可。
  1.1Scalar变量
  1.1.1赋值
  Scalar变量是Robotframework中最常见的变量,在使用的方式上我们可以进行多种方式进行赋值,以下主要讲下最常用的赋值方式。
  1.Set 赋值
  Set赋值是最常见的赋值,其中最主要的关键字为Set Variable 对Scalar变量进行赋值 ,其他Set 相关的带Variable关键字页可以进行赋值 ,赋值的时候,变量后面带不带“=”都不影响整体使用。
  如上图所示,第一种方式是直接给${boyname}进行赋值,第二种方式则是先进行判断,再进行赋值,如果'a'=='b',则${girlname}赋值’ Andy’,反之赋值为’Lucy’。执行结果如下图所示:
  2.Get赋值
  Get赋值主要是用在返回值上,包括系统关键字的返回值以及用户关键的返回值,不过在日常的使用主要有以下的用法:
  像以上主要是获取当前时间以及获取list长度两种用法,执行结果如下图所示:
  1.1.2作用域
  通常情况下,每个变量默认是局部变量,变量的作用域主要分为以下几种
  1.Case变量:作用域主要是在case的内部,常用的关键字:Set Variable ,Set Test Variable
  2.Suite变量:作用域主要是在suite内部,整个suite里面的case都使用该变量,这里suite的指的是文件型的suite,而非是目录型的suite,在使用的时候需要特别注意;常用的关键 Set Suite Variable
  3.Global变量:全局变量,这个变量是在所有的case和suite里面都是有效,常用的关键Set Global Variable
  1.1.3例子
  在之前的文章中提及到有涉及到目录的创建和操作,在实际的操作过程中,我们可以根据实际目录的结构进行变量使用,如下图所示:
  在上述的使用过程,因为身份证号码在测试套件中进行再次校验,则在“身份证校验”测试用例可以直接进行使用,而不用再次进行手动的创建,因涉及到同一个测试套件,因此使用“Set Suite Variable”,而学生的姓名是在下面的“根据姓名查询”测试用例需要使用该变量,因此可以使用“Set Global Variable”关键字。
  总之,在使用的过程中根据使用的需要进行变量的作用域创建,但是在使用过程中针对不同作用域的变量切记“不要同名,否则会混乱”
  1.2List变量
  1.2.1直接赋值
  与Scalar类似list变量也是可以用Set Variable 进行赋值,但是最常使用的是Create List关键,关于两个的关键的语法,在使用的时候可以查看关键字的语法,赋值如下所示:
  执行结果如下所示:
  1.2.2追加值
  追加值主要使用的是“Append To List”关键字,主要用于在某个list变量追加值,追加在list的末尾。
  注意:在使用的“Append To List”关键字,list的标识符需要用“$”,而不能用“@”,否则会进行报错。
  1.2.3取值
  与Python语法类似,在使用list的时候,我们可以取list的某个值,主要使用索引值进行取值,主要有以下两种方式进行取值,“@{变量名}[index]”以及“${变量名[index]}”s。
  需要注意的是,list的取值和python的语法是一样的,下标index也是从0开始。我们在接口测试过程中也会经常遇到取值的情况。还是以top排名的接口为例,一般的接口测试过程如下:
  (1)首先取接口返回的值到一个list1中去;
  (2)按照查询的逻辑也进行去数据库查询,将取的值也是放到list2中去
  (3)依次取list1和list2中的值进行对比;
  1.2.4例子
  在日常接口测试过程中,经常会到排名或者top的接口,在实际测试过程中我们需要校验返回的人数是否为排名的人数,这个时候我们就可以使用list进行测试,例如成绩查询排名前十的同学时,在将每个同学的名字放到列表中,然后用“get length”取列表的长度,判断接口的人数是否为10人。


版权声明:本文出自《51测试天地》第六十期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任

评 论

论坛新帖



建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海信义律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2021, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道