Robot Framework + Selenium2Library自动化测试系列(9) - 注释:工时表查询1

每个test case写完后,我们都可以写个日志或是注释来提示输出结果,检查测试状态,和查看错误信息。就像直接写程序的原理一样。有几种方法可供选择:你既可以用Log关键字,也可以用Comment关键字,也可以直接写“#”。

Log就是日志的意思,属于Robot Framework的内嵌关键字,在官方API文档上有这么几种使用方法:

比如,如果不加任何参数,那输出结果就是一条简单的信息;如果后面加个“WARN”,那输出结果就是一条警告类型的信息。现在做实验,打开Tests -> Login –> TCLOG-1,在第4行和第5行输入以下命令:

执行test case,会得到如下的提示:

我们会注意到,系统输出两条关于用户成功登录的日志,第一条的头部显示INFO,第二条的头部显示WARN,这两个关键字在Robot Framework里是“Level”的意思,也就是类型或是等级。默认就是INFO,代表最基本类型的信息,在咱们的test case里所有的运行步骤都是基本信息。WARN指的是警告类型的信息,警告信息也会在报告里单独显示。

由于API文档里的内容很多,出于篇幅不可能把所有的关键字全部进行讲解和实验,有很多我也不确定用法和结果,也是一直在学习。这里再次建议大家养成看文档上网查询的好习惯。

Comment是显示在报告里的一条注释信息,比Log要简单,具体用法如下图,在第6行和第7行分别写下:

注意,这两种方法都是写注释的,不过目的不相同。第6行目的是检查输出了什么,所以信息会显示在test case运行完的日志里;而第7行只是在信息前加了个井号,它的目的只是在程序中告知测试员某段代码的功能是什么,用于在编程中使用,所以不会输出。它更像是程序员们编程时加注释的方法。马上我们开始的第3个测试用例中我们就会用到这种Comment。

第3个test case是实现一个员工工时表查询的功能。先来看看这个工时表,在导航栏上点击“Timesheet”,我在上面创建了4条虚拟员工的工作记录,包括什么时候开始上下班,工作了多长时间,还有一些备注。在查询文本框中输入“Test One”显示1号员工的工时单;输入“Test Two”显示2号员工的工时单,以此类推。

我们设计的test case步骤如下:

1. 登录;

2. 导航到Timesheet下;

3. 输入员工姓名,查看返回结果是否正确:

1) 输入”Test One”,返回2条记录,且均包含”Test One”

2) 输入”Test Two”,返回1条记录,且包含”Test Two”

3) 输入”Test Three”,返回1条记录,且包含”Test Three”

4) 输入”Test Four”,无返回记录。

第1步登录不说了,直接调用以前写的方法就行。第2步导航到Timesheet下,就是简单点击按钮,也没什么可说的。第3步是我们的测试点,需要输入员工姓名。和登录一样,员工姓名也是从测试数据集里来的,我们首先准备测试数据。在Test_Data文件夹下创建一个叫Timesheet的子文件夹,然后创建一个叫TCTIMES-1.xls的文件:

我创建了两个sheet,一个在第1步登录使用,一个在第3步输入员工姓名时使用,简单明了。当然,有些人都写在一个sheet里也没关系,只要别把数据搞乱就好。在“employee”sheet中,姓名被分成姓和名两列,有人说你分来写累不累?确实累,但我是故意这么写的,想多告诉大家一些关于Robot Framework里字符串的使用方法。还有一列是期望的工时记录数目,虽然是一些数,但Excel这里也用字符串表示,到时候讲为什么。

现在我们就要正式开始写test case了。右击Tests -> New Suite创建模块,起名为Timesheet。现在我们可以再把ApplicationSpecific.html里引入的类库和资源文件做一些调整 - 引用Selenium2Library,OperatingSystem和DataDriven.py:

同时删除Tests -> Login模块里的Selenium2Library,OperatingSystem和DataDriven.py文件,因为你本身引入了ApplicationSpecific.html,就不用再重复引了。都没问题后创建该模块下第一个test case – TCTIMES-1,加入ApplicationSpecific.html和Pages里的Login.html资源文件:

接着在TCTIMES-1中写进Setup和Teardown,并且在前4行把登录部分的代码按下图写好:

第一步就是之前提到的comment的一种写法,它并不输出,在代码量特别大时我们可以用它提示当前的代码是干什么的;第2步到第4步其实就是Tests –> Login -> TCLOG-1的内容,以后只要有登陆步骤我们就写这几行就行,因为所有内容都已经包含在Valid login to xiaocesuo函数里,直接调用即可。

登录完成之后就是从菜单进入到Timesheet界面的步骤,很简单。右键Pages -> New Resource–> 创建资源文件Timesheet.html用来写Timesheet模块中需要的函数。这里还是相同的问题,你可以把导航到Timesheet这步直接写到测试用例TCTIMES-1里,也可以写成函数。我还是倾向于写成函数,因为以后只要有“进入Timesheet界面”的测试步骤我就可以直接调用就好了。右键Timesheet.html -> New Keyword -> 创建函数Navigate to Timesheet Screen,不需要任何参数和返回值。:

按部就班,下面是写变量。之前有关登录的变量我们都放到了ObjRepository -> Login.html下,现在关于工时表的变量也不例外。右击ObjRepository -> New Resource -> 创建Timesheet.html,然后先按图依次创建${locMenu_Timesheet},${locTSTable_SearchBox}和${locTSTable_SearchBtn}三个变量。这三个变量分别代表导航到timesheet的导航按钮,搜索工时表框以及查询按钮

回到Pages -> Timesheet.html把变量以及环境相关的资源文件都添加进来:

回到Natigate To Timesheet Screen继续按下图完成该Keyword:

这一下一目了然,声明出来的变量是用于函数步骤中的。点击导航栏上Timesheet的xpath,然后等待网页跳转。我的习惯是每次点击过后都等待个几秒钟,有时网页加载龟速,最好等一等。

回到TCTIMES-1,把函数Navigate to Timesheet Screen写到test case中,注意引Pages -> Timesheet.html中的资源文件。前两步登录和导航到Timesheet页面就做完了:

这篇文章的源代码在[Test8](https://github.com/cslm/cslm.robotframework/tree/master/Test8)中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容