python3+robotframework3+selenium3分层设计和截图及注意事项

再说一下目前的主要环境信息和版本:

操作系统:win10 64位

python版本:3.9.0

RIDE版本:v2.0b2.dev1

robotframework-seleniumlibrary:3.141.0

selenium:3.141.0

pip:20.2.4

setuptools:50.3.2

decorator:4.4.2

robotframework:3.2.2

wx:2.8-unicode

wxPython:4.1.1a1.dev4997+ba18224e

geckodriver:0.28.0

IEDiverServer:3.141.0

现在说下如何用ride分层测试案例和截图以及一些需要注意的细节
ride分层测试案例
























上图中我们分了三层,测试元素层放的是我们的测试步骤,测试流程层放的是测试步骤的组合,测试套件层放的是我们的测试案例(测试用例)

我们的testcase2用了分层的逻辑,testcase1用的未分层的

testcase1的内容:
testcase1内容

如图 ,我们首先打开浏览器,输入百度的url,然后输入搜索的内容哈哈哈哈,然后对页面标题进行验证,最后关闭浏览器。
这里面加入了sleep关键字设置等待时间,时间可以是数字或时间字符串。 时间字符串的格式如1天2小时3分4秒5毫秒或1d 2h 3m 4s 5ms,它们在《 Robot Framework用户指南》附录中有完整说明。 可选原因可以用来解释为什么需要睡眠。 既记录了时间,也记录了原因。

Examples:

Sleep 42
Sleep 1.5
Sleep 2 minutes 10 seconds
Sleep 10s Wait for a reply

那 么在分层设计下是什么样的,看testcase2:

testcase2

只有一行数据,后面是输入的参数,调用的是测试流程1

再看测试流程1:

测试流程1

我们加了两个参数,所以testcase2中需要输入两个参数的值,步骤中引用的就是测试元素层中的关键字了,我们逐条的看下,

打开浏览器:
打开浏览器

输入搜索内容:

输入搜索内容

点击搜索:
点击搜索

校验标题:
验证标题

这个步骤1加入了等待页面显示hahah这个内容,如果不加这一步,得到的标题就会是“百度一下”,而不是我们希望的,这个熟悉selenium的应该很清楚,selenium有这个步骤太快导致还没有出现我们希望的结果时就进行get title操作,所以我们显示声明一下出现这个结果后,在进行get title,这样就不会因为运行太快或者其他原因导致预期结果和实际结果不一致的现象。

截图:
截图

自动化测试有时候需要通过截图来检测页面是否变形等,或者出错时加入截图,方便查看。我们在此地加入截图后,在测试报告中会看到

关闭浏览器:

关闭浏览器

完了,这就是整个分层步骤,有些地方有了参数,有些没用,比如预期结果是写死的,这个可以根据实际情况自行修改,也可以根据实际情况自行分层,等待页面显示内容和截图方法需要注意,我们在步骤中写入的都是关键字,SeleniumLibrary的关键字使用文档,可以在ride上面按ctrl查看,给一个连接,方便我们查看:http://robotframework.org/robotframework/latest/libraries/BuiltIn.html

最后,需要注意如果我们使用截图的时候没有指明保存的目录,我们的截图就会放在与报告一样的目录下

在报告中点开截图关键字就可以看到我们的截图:
截图



作者:马克社区何老师