如何防止每次运行测试用例时都关闭并重新打开移动应用程序?

时间:2019-07-17 10:57:28

标签: python automation appium python-unittest

我正在使用带Python的Appium执行移动应用程序自动化。我还需要创建HTML报告。我也想创建多个测试套件。所有这些工作,除了一个问题。

我的问题是该应用程序在每个测试用例中都关闭并重新打开。我怎样才能解决这个问题?预先感谢。

(请注意,这是我在此处输入的示例代码。)

from adb.client import Client as AdbClient
import HtmlTestRunner
import datetime
import os, sys
import glob
import unittest
from appium import webdriver
from time import sleep
from appium.webdriver.common.touch_action import TouchAction

PLATFORM_VERSION = '8.1.0'



class Q_suite1_01(unittest.TestCase):

def setUp(self):
    desired_caps = {}
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '8.1.0'
    desired_caps['deviceName'] = 'Samsung Galaxy J7 Max'

    devices = AdbClient(host= "127.0.0.1", port= 5037).devices()
    for device in devices:
        desired_caps['udid'] = device.serial

    desired_caps['appPackage'] = 'com.testapp'
    desired_caps['appActivity'] = 'com.testapp.MainActivity'
    url = "http://localhost:{}/wd/hub".format(4723)
    self.driver = webdriver.Remote(url, desired_caps)




def install(self):
    print 'ABDC!'


def run_app(self):
    try:
        x = self.driver.is_app_installed('com.quallogi')
        if x is True:
            print 'App is already installed.'
        else:
            print 'App is not installed.'
    except:
        print 'App not installed'


def signin(self):
    sleep(5)
    self.driver.find_element_by_xpath('//*[contains(@text,"Login") and contains(@class, "android.widget.TextView")]').click()
    print 'Sign'


def testcase_Install_app(self):
    self.install()

def testcase_Run_app(self):
    self.run_app()

def testcase_SignIn(self):
    self.signin()


# def testcase_Install_app(self):
#     self.install()
#     self.run_app()
#     self.signin()
#



def tearDown(self):
    self.driver.quit()



if __name__ == '__main__':

     result = []

     suite1= unittest.TestLoader().loadTestsFromTestCase(Q_suite1_01)
     result.append(HtmlTestRunner.HTMLTestRunner(output='./HTML Reports/' 
     + str(datetime.date.today())).run(suite1))
     print(result)

1 个答案:

答案 0 :(得分:1)

首先,我想向您推荐Appium功能“ noReset”-“在此会话之前不要重置应用程序状态”。 (真假)。

如果我正确理解您的问题。您的意思是“在每个测试用例中应用程序都关闭并重新打开”?您能详细描述一下吗?