测试总结-robotframework之UI自动化

作者: 留沪小厮 | 来源:发表于2018-10-25 12:03 被阅读2次

hello,大家好,好久没有分享robotframework技巧了,这次一次性都拿出来献宝,各位走过,路过,不要错过哟

一、重复执行一个case

重复执行单一关键字

某些情况下,循环结构可能只需要对一个关键字做执行次数的循环。

Robot Framework提供了一个关键字Repeat Keyword,只需指明循环次数和循环中的关键字即可。

可将需要重复执行的case写成关键字,使用Repeat Keyword重复执行。具体实现如下:

Repeat Keyword

二、robot framework 随机生成字符串,数字,邮箱,手机号

说到随机生成,我们就会想到random函数

random模块重要函数

1 )、random() 返回0<=n<1之间的随机实数n;

2 )、choice(seq) 从序列seq中返回随机的元素;

3 )、getrandbits(n) 以长整型形式返回n个随机位;

4 )、shuffle(seq[, random]) 原地指定seq序列;

5 )、sample(seq, n) 从序列seq中选择n个随机且独立的元素;

random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。

random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。

random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。

random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。

random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。

random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。

在RF中我们可以使用 关键字 Evaluate 。比喻随机生成手机号时:

说到随机生成,我们就会想到random函数

random模块重要函数

1 )、random() 返回0<=n<1之间的随机实数n;

2 )、choice(seq) 从序列seq中返回随机的元素;

3 )、getrandbits(n) 以长整型形式返回n个随机位;

4 )、shuffle(seq[, random]) 原地指定seq序列;

5 )、sample(seq, n) 从序列seq中选择n个随机且独立的元素;

random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。

random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。

random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。

random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。

random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。

random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。

在RF中我们可以使用 关键字 Evaluate 。比喻随机生成手机号时:

手机号

生成随机字符串:

随机数

具体生成方式:"".join(random.sample(string.letters+string.digits,int(${20})))

示例

三、robot framework 中对于有滚动条的页面中元素的处理

对于robot framework内 对滚动条

方法1、定位元素的时候,只要元素在此页面上,即使元素在有滚动条的页面部分RF也能定位到,但是如果要操作元素则需要先使用Focus关键字,然后再进行操作

方法1的rf代码:

Open Browser    https://www.baidu.com/    gc

maximize browser window

execute javascript    document.getElementById('kw').value = '廖雪峰'

click element    xpath=.//*[@id='su']

sleep    1

focus    xpath=.//*[@id='page']/a[1]/span[2]

click element    xpath=.//*[@id='page']/a[1]/span[2]

示例

方法2中robotframework

RF框架是不是一样用js呢?大家可以去尝试,反正我是各种尝试了,在google上也有各种版本,包括

1."Execute Javascript document.getElementByIdx_x('id').scrollTop=10000"

2."Execute Javascript var q=document.getElementByIdx_x('id').scrollTop=10000"

3."Execute Javascript js="var q=document.getElementByIdx_x('id').scrollTop=10000""

总之各种版本都试过了,然并卵,没一个行的。不过还好提供了一个Focus关键字,可以通过这个关键字定位到某个元素再操作

比如:Focus id=passwd

又来但是了,这个元素的locator不显示咋搞,通过大海捞针总算找到了

window.scrollBy(0, document.body.scrollHeight)

window.scrollTo(0, document.body.scrollHeight)

两种都可以啊,document.body.scrollHeight表示滑到最底部,如果要滑到什么位置,通过填写值来调试,比如

"Execute Javascript window.scrollTo(0, 50)"

示例

注:本文部分内容摘抄来自网络,如有雷同纯属巧合,截图是自己实践的内容,可运行。

相关文章

网友评论

    本文标题:测试总结-robotframework之UI自动化

    本文链接:https://www.haomeiwen.com/subject/nupqtqtx.html