Robot framework脚本解刨
2019-07-07 本文已影响0人
Show嘿嘿
首先声明,这篇文章对于写Robot framework测试脚本是没有帮助的。
那为什么还要写这篇文章呢?
因为我懒呀~
最开始我们的测试用例是写在excel表格的(不要问我为什么,反正能满足需求,虽然效率不高,虽然我也抗议过)。
写测试脚本的时候呢,又要求Case Documentation要有完整的用例描述,见本文"三、Test cases"部分。同时,用例名称、配置文件命名、Case Tags等,都有规范要遵循,见Robot framework测试脚本编写思考。
想象下,在那时候要写个遵循脚本规范的测试脚本,得需要多少繁琐的复制黏贴修改的操作啊~
所以我就投机取巧写个Python脚本实现excel测试用例转化为测试脚本框架的工具。
这就是本文的由来。
脚本大体分为四部分
- Settings
- Variables
- Test cases
- Keywords
robotframework脚本的特点:表格
一、Settings
1.内容
-
脚本描述
Documentation Level: 3 ... Group_1: 响应处理 ... Group_2: 响应处理 ... Author: zhangbb ... Date: 2016.08.30 ... Desc: ... Tags: important ... Version: xxxx-1.1.1-1 ... 功能名称: xxx ... 需求链接: ... ... Group_2标签支持中文,其他标签不支持。每行不能以空格为结束符。
-
Suite setup/teardown
Suite Setup Suite setup Suite Teardown Suite teardown
-
Force tags
Force Tags __post
-
引用库
Library OperatingSystem Library wsLighttpd Library wsSquid Library wsHttp Library wsShortCut.py 127.0.0.1:3128 Library wsSimpleWebServer Variables Globals.py
2.结构特征
直观上会发现,脚本呈现右半部分对齐的特点。经过进一步分析:
左边部分有18个字符串(含空格)
二、Variables
1.内容
- 全局变量
${CORE_DIR} /usr/local/xxx
${CHANNEL DIR} /usr/local/xxx/etc/channel
${SQUID CLIENT} /usr/local/xxx/bin/yyy
${ACCESS LOG} /usr/local/xxx/var/logs/access.log
${TEMP FILE} /tmp/tmp.txt
${URL1} http://aaa.aa.com/wstest/1.html
2.结构特征
同 Settings一样,左边部分有18个字符串(含空格)
三、Test cases
1.内容
-
用例名称
-
用例描述
-
Documentation
-
描述部分
-
-
用例标签
-
Setup
-
脚本部分
-
Teardown
1-Test fucntion [Documentation] *用例1* ... ... *描述* ... ... 此处测试xxx ... ... *配置* ... ... HOST aaa.aa.com ... domain_replace_dst_ip 127.0.0.2 ... HOST END ... ... *步骤* ... ... 1.步骤一 ... 2.步骤二 ... ... *预期结果* ... ... 1.预期结果一 ... 2.预期结果二 [Tags] _case1 [Setup] Case setup Run killall tcpflow [Teardown] Case teardown ${core_begin}
2.结构特征
-
用例名称:顶格写
-
用例描述:
-
Documentation:4个空格 + [Documentation] + 4个空格
-
描述:4个空格 + 3个. + 4个空格 + 描述
-
-
用例标签:4个空格 + 标签
-
Setup:4个空格 + 关键字
-
脚本部分:4个空格 + 脚本命令
-
Teardown:4个空格 + 关键字
-
用例与用例之间:换一行
四、Keywords
1.内容
-
自定义关键字。
Case teardown [Arguments] Run killall tcpflow
2.结构特征
-
关键词:顶格写
-
关键字内容:4个空格 + 脚本命令
-
关键字与关键字之间:换一行(可有可无)