Appium Appium+RF 遇到的问题

jacky · March 11, 2014 · Last by 思寒_seveniruby replied at March 12, 2014 · 1188 hits

用 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 条回复 时间 点赞

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

jacky #2 · March 11, 2014 Author

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

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

jacky #4 · March 12, 2014 Author

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

jacky #5 · March 12, 2014 Author

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

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up