Appium Appium+RF 遇到的问题

jacky · 2014年03月11日 · 最后由 思寒_seveniruby 回复于 2014年03月12日 · 1798 次阅读

用 Python 写了两个方法测试 Email:send_email 和 test_Setting,里面都写有
desired_caps = {}
desired_caps['device'] = 'Android'
desired_caps['browserName'] = ''
desired_caps['version'] = '4.2'
desired_caps['app-package'] = 'com.android.email'
desired_caps['app-activity'] = 'com.android.email.activity.EmailActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
然后用 RIDE 添加到 Keyword 中,运行完第一个,第二个就报错 A new session could not be created。

我想,能不能把上面重复的代码只执行一次,但是其他的方法就没法使用 driver 句柄了,怎么办呢?

共收到 6 条回复 时间 点赞

每一个测试方法执行完成后强制做一些擦屁股的事情,比如关掉连接对象~

这样似乎不好吧,如果有很多 case 都是在同一个 App 里面执行,每次执行前都要做相同的操作,效率不行吧,刚刚看了下文档,似乎有个变量 ROBOT_LIBRARY_SCOPE = 'TEST SUITE',不知道怎么用,试试看行不行

#2 楼 @jacky 正解, 好好看看 RF 吧, 功能挺强大的

@qddegtya 解决了。
把上面初始化 driver 的代码放到 module init 方法里面,把 scope 设为 GLOBAL,再写个结束的方法,就行了。

@seveniruby Hi,RF 能做单元测试吗?

#5 楼 @jacky RF 理论上是可以做的,但是不建议, 单测的重点在于保证底层质量并提升研发效率, 是需要和研发的自己的代码频繁集成测试的, 所以需要选择同语言的框架. 而不适合使用这种高 level 的工具. RF 适合做功能层面的用例组织, 包括手工和自动化.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册