Appium Appium 每次都会执行完 case 后时都要重新启动 App

pythonCN · May 31, 2018 · Last by pythonCN replied at October 12, 2018 · 5660 hits

page object 方式,Appium+python+unittest 每次执行完 case 后,就会重新启动 app。
请教各路大神,有没有什么方式来避免这种重新启动

共收到 34 条回复 时间 点赞

理论上通过复用 sessionid 可以实现不重启,但看源码没有不重启的接口

把 session 保存下来,不要每个 case 都去创建 session

是每次执行 case 都重启 app 吧,这个配置那里可以设置不重启 app

小蜜蜂 回复

可否具体描述下怎样设置吗,遇到同样问题

枫叶 回复

等我晚上回去后再给你详细说明

小蜜蜂 回复

好的,感谢哈

pythonCN #8 · June 06, 2018 Author
小蜜蜂 回复

求方法

pythonCN 回复

不好意思,昨天忘了,今晚回去弄

小蜜蜂 回复

求方法😂

pythonCN #11 · June 07, 2018 Author
小蜜蜂 回复

😀 OK

pythonCN 回复


在这个配置里面加上 noReset=True 就不会重置 app 了,也可以在 appium 把这个勾选看下实际效果

楼主找到方法了吗 ?求解,谢谢

pythonCN #14 · June 19, 2018 Author
119 回复

还没找到办法,楼上的方法都不行。

pythonCN 关闭了讨论 19 Jun 22:30
pythonCN 重新开启了讨论 19 Jun 22:30
pythonCN #17 · June 19, 2018 Author
小蜜蜂 回复

还是不行。。。

能把你的用例贴一下吗,应该是你在用例里手动关闭了 APP

pythonCN 回复

我也暂时没找到,百度了好多方法,还是不行。每一条 case 下 APP 都会重启,再找找有合适的的话,麻烦来告知一声,谢谢! Ps:昨天看有一种设置 @classMethod的方法,你可以试下。

pythonCN #20 · June 20, 2018 Author
arrow 回复

tearDown 里面用了关闭,如果不用的话能解决?我试试
tearDown(self):
self.driver.quit()

pythonCN #21 · June 20, 2018 Author
119 回复

这种方法是可以的,但是唯有的问题就是你的 test case 都必须放在这个脚本里面,那不得多长啊。一直知道这个方法,但是和现在的 case 分离的设计个人感觉不是很符合

119 · #22 · June 20, 2018
Author only
pythonCN #23 · June 20, 2018 Author
119 回复

大致就是下面这种
class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
print "start!"

@classmethod
def tearDownClass(cls):
time.sleep(1)
print "end!"

def test_case01(self):

def test_case02(self):

def test_case03(self):

pythonCN #24 · June 21, 2018 Author
雨夜狂奔 回复

具体怎样操作喃?

pythonCN #25 · June 21, 2018 Author
小蜜蜂 回复

什么设置啊?我用的 android 机好像没有这个设置哦

pythonCN #26 · June 21, 2018 Author

能详细说明下么

pythonCN 回复

简单来说就是把你的 driver 保存在全局变量,每次用例都复用这个 driver 就不会重启了

pythonCN #28 · June 21, 2018 Author
雨夜狂奔 回复

大佬来一段 demo 吧,😀

代码的运行过程是先 setup,然后执行 case,然后 teardown,你每次重启是因为你每次执行 case 的时候在 setup 内写了 driverd 的 start_driver(),也就是每次都重新打开一次。好点的解决方案是 driver 写到基类的全局变量中,不要写在 setup 内部

pythonCN #30 · July 05, 2018 Author
chunlei 回复

有没有 demo 借鉴一下😀

雨夜狂奔 回复

你好,能给指导一下吗?我也遇到了这个问题:qq421071642

枫叶 回复

你的问题解决了吗?你好,能给指导一下吗?我也遇到了这个问题:qq421071642

按照楼上的说明把那个设置改下就可以了

我解决了,直接把启动的 driver 放在 setUpClass 里面,不要放在 setUp 里面,因为前者是所有测试用例执行前准备,后者是每条用例执行前准备,遮掩该就可以避免掉这个问题

用 setUpclass 和 tearDownclass,不要用 setup 和 tearDown

36Floor has deleted
pythonCN 关闭了讨论 12 Oct 17:03
pythonCN 重新开启了讨论 12 Oct 17:03
yang 回复

那所有的测试用例都写在这个 py 之下? 这样就只用启动一次 driver,直到所有用例执行完成。但是这样,不好吧...

pythonCN 关闭了讨论 23 Jan 11:10
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up