用robotframework+Python+appium做自动化测试

时间:2021-06-03 05:55:47

RT,用用robotframework+Python+appium这一套基本都是在做app的UI自动化测试。记录一下用这个框架在做移动端自动化测试时自己的一些体会。

1.设置测试套件,用robotframework+Python+appium做自动化测试图一

如图一,设置测试套件的意思是把一些公共的操作,全局的变量和对公共方法的初始化的操作放在测试套件里面。这样的好处就是不用每次都去获取appium的driver和关闭appium的driver。如果不关闭,直接运行下个测试套件时appium会报错,提示新回话没法创建。

创建全局变量在test suite点击右键,可以选择创建列表或者字典形式的变量。此处建立的是列表形式的,用的时候直接用@{add_params}[index],(index是列表的下标),此处设置的变量会在整个test suit中都生效。

2.包名参数化

因为编写的测试的用例可能会在不同的包上复用,比如开发阶段的包名和正式环境的包名不一样,或者同样的功能的apk会有多个发布渠道,每个渠道的包名不同。而定位元素的时候都是packageName:id@xxx的格式,所以如果不把包名参数化的话自动化用例完全没法复用。包名参数化就要先写个方法来获取包名,这个比较简单,可以通过读取配置文件,也可以用aapt d badging /../../xxx.apk来获取.获取后写成一个公共方法,在每个测试套件的第一条用例就获取包名并赋予一个全局的变量,实现包名的参数化。用robotframework+Python+appium做自动化测试  用robotframework+Python+appium做自动化测试

3.多熟悉RF自带的关键字和变量

在编写用例时,可以多通过F5在弹出的关键字查询页面查看有哪些系统的关键字,并了解他们的用法。

用robotframework+Python+appium做自动化测试

 

系统自带的关键字还是比较多的,其中关于断言的一些方法基本能够满足常用用例的判断。比如should be true  ,should be equal as strings ...

如果系统关键字不够用时,自己编写的关键字也要尽量易于使用,在方法的描述中写清楚需要的参数和返回值,方便调用的时候快速查看。

4.每条用例写完后最好的返回到主界面,方便下一条用例执行的时候好正确的开始。这个可以在test suit中的test setup和test teardown中设置,也可以自己写一个返回主界面的方法,每次调用。

5.在用例的编写中用log写明步奏,方便结果的查看。比如用robotframework+Python+appium做自动化测试

,这样在调试或者出错的时候能够方便看异常信息。