Exemplo n.º 1
0
 def run_method(self):
     print "start runmethod..."
     server = Server()
     server.main()
     case_data = GetCaseData(0)
     action_method = ActionMothod(0)
     lines = case_data.get_case_lines()
     for i in range(1, lines):
         handle_step = case_data.get_handle_step(i)
         element_key = case_data.get_element_key(i)
         handle_value = case_data.get_handle_value(i)
         expect_element = case_data.get_except_element(i)
         expect_step = case_data.get_except_step(i)
         handle_method = getattr(action_method, handle_step)
         if element_key != '':
             handle_method(element_key, handle_value)
         else:
             handle_method(handle_value)
         print u"预期步骤是:" + expect_step
         if expect_step != '':
             expect_result = getattr(action_method, expect_step)
             result = expect_result(expect_element)
             print result
             if result:
                 case_data.write_value(i, "pass")
                 print "------------------pass--------------------"
             else:
                 case_data.write_value(i, "fail")
                 print "------------------fail--------------------"
Exemplo n.º 2
0
def run():
    server = Server()
    write_user_cmd = WriteUserCmd()
    server.start_server()
    print "完成start_server()"
    devices_length = write_user_cmd.get_file_lines()
    start_process(main.test_suite.run_suite, devices_length)
Exemplo n.º 3
0
 def normal_err12(self, i):
     """
     输入用户名和密码,切后台,等待5s,在启动,数据存在
     """
     time.sleep(1.5)
     self.login_handle.click_account()
     time.sleep(1.5)
     if self.login_handle.get_title_login() != None:
         print u"登录账号元素存在"
         time.sleep(1.5)
         self.login_handle.send_password("13728628613")
         time.sleep(1.5)
         self.login_handle.send_password("s123456789")
         time.sleep(1.5)
         Server().cut_background(i)
         time.sleep(6)
         Server().get_start_app(i)
         time.sleep(6)
         self.login_handle.click_cancel()
         time.sleep(2)
         if self.login_handle.judge_account() != None:
             print u"账户元素存在"
             self.driver.get_screenshot_as_file("../jpg/" + str(i) +
                                                "Test-" + str(time.time()) +
                                                ".png")
         else:
             print u"账户元素不存在"
             self.driver.get_screenshot_as_file("../jpg/" + str(i) +
                                                "Test-" + str(time.time()) +
                                                ".png")
     else:
         print u"登录账号元素不存在"
         self.driver.get_screenshot_as_file("../jpg/" + str(i) + "Test-" +
                                            str(time.time()) + ".png")
Exemplo n.º 4
0
 def normal_err13(self, i):
     """
     输入用户名和密码,杀掉进程,在启动,数据不存在,默认显示登录页面
     """
     time.sleep(1.5)
     self.login_handle.click_account()
     time.sleep(1.5)
     if self.login_handle.get_title_login() != None:
         print u"登录账号元素存在"
         time.sleep(1.5)
         self.login_handle.send_password("13728628613")
         time.sleep(1.5)
         self.login_handle.send_password("s123456789")
         time.sleep(1.5)
         Server().kill_app(i)
         time.sleep(6)
         Server().get_start_app(i)
         time.sleep(6)
         if self.login_handle.judge_account() != None:
             print u"账户元素存在"
             self.driver.get_screenshot_as_file("../jpg/" + str(i) +
                                                "Test-" + str(time.time()) +
                                                ".png")
         else:
             print u"账户元素不存在"
             self.driver.get_screenshot_as_file("../jpg/" + str(i) +
                                                "Test-" + str(time.time()) +
                                                ".png")
     else:
         print u"登录账号元素不存在"
         self.driver.get_screenshot_as_file("../jpg/" + str(i) + "Test-" +
                                            str(time.time()) + ".png")
Exemplo n.º 5
0
 def __init__(self):
     self.server = Server()
     self.server.main()
     base_driver = BaseDriver()
     self.driver = base_driver.android_driver(0)
     self.data = GetData()
     self.lines = self.data.get_case_lines()
Exemplo n.º 6
0
 def login_err13(self, i):
     """
     输入手机和密码,杀掉进程,启动,数据不存在
     """
     time.sleep(1.5)
     self.login_handle.click_account()
     time.sleep(1.5)
     self.login_handle.send_username("13728628611")
     time.sleep(1.5)
     self.login_handle.send_password("s123456")
     time.sleep(1)
     Server().kill_app(i)
     time.sleep(6)
     Server().get_start_app(i)
     time.sleep(6)
     self.driver.get_screenshot_as_file("../jpg/" + str(i) + "Test-" +
                                        str(time.time()) + ".png")
     self.login_handle.click_account()
     time.sleep(1)
     if self.login_handle.get_title_login() != None:
         print u"登录账号元素存在"
         self.driver.get_screenshot_as_file("../jpg/" + str(i) + "Test-" +
                                            str(time.time()) + ".png")
         self.login_handle.click_cancel()
     else:
         print u"登录账号元素不存在"
         self.driver.get_screenshot_as_file("../jpg/" + str(i) + "Test-" +
                                            str(time.time()) + ".png")
Exemplo n.º 7
0
class RunMain:
    def __init__(self):
        self.server = Server()
        self.server.main()
        self.case_data = GetCaseExcelData()
        self.action_method = ActionMethod()

    def run_method(self):
        lines = self.case_data.get_case_lines()
        for i in range(2, lines + 1):
            handle_step = self.case_data.get_handle_step(i)
            handle_element = self.case_data.get_handle_element(i)
            handle_value = self.case_data.get_handle_value(i)
            expect_step = self.case_data.get_expect_step(i)
            expect_element = self.case_data.get_expect_element(i)
            excute_method = getattr(self.action_method, handle_step)
            if handle_element is None:
                excute_method(handle_value)
            else:
                excute_method(handle_element, handle_value)
            if expect_step is not None:
                expect_excute_method = getattr(self.action_method, expect_step)
                result = expect_excute_method(expect_element)
                if result is not None:
                    self.case_data.write_result(i, 'pass')
                else:
                    self.case_data.write_result(i, 'fail')
Exemplo n.º 8
0
 def run_method(self):
     server = Server()
     server.main()
     data = GetData()
     action_method = ActionMethod()
     lines = data.get_case_lines()
     for i in range(1, lines):
         handle_step = data.get_handle_step(i)
         element_key = data.get_element_key(i)
         handle_value = data.get_handle_value(i)
         expect_key = data.get_expect_element(i)
         expect_step = data.get_expect_handle(i)
         #input()  login_button
         #input  str
         #None
         excute_method = getattr(action_method, handle_step)
         if element_key != None:
             excute_method(element_key, handle_value)
         else:
             excute_method(handle_value)
         if expect_step != None:
             expect_result = getattr(action_method, expect_step)
             result = expect_result(expect_key)
             if result:
                 data.write_value(i, "passs")
             else:
                 data.write_value(i, "fail")
Exemplo n.º 9
0
 def __new__(cls, *args, **kwargs):
     server = Server()
     devices = server.device_list
     ports = server.appium_port_list
     server.start1()
     time.sleep(10)
     if not hasattr(cls, '_instance'):
         orig = super(BaseDriver, cls)
         desired_caps = {
             'platformName': 'Android',
             'platformVersion': '8.1.0',
             'deviceName': devices[0],
             'appPackage': 'com.nexttao.shopforce.enterprise',
             'appActivity': 'com.nexttao.shopforce.fragment.SplashActivity',
             'unicodeKeyboard': 'True',
             'resetKeyboard': 'True',
             'noReset': 'True',
             'newCommandTimeout': 60,
             'automationName': 'uiautomator2'
         }
         cls._instance = orig.__new__(cls)
         info = 'http://127.0.0.1:%s/wd/hub' % int(ports[0])
         # info = 'http://127.0.0.1:4723/wd/hub'
         cls._instance.driver = webdriver.Remote(info, desired_caps)
     return cls._instance
Exemplo n.º 10
0
 def close_start_app(self, i):
     """
     杀掉APP进程,再次启动APP
     """
     Server().kill_app(i)
     time.sleep(2)
     Server().get_start_app(i)
     time.sleep(2)
Exemplo n.º 11
0
    def run_test(self):
        server = Server()
        server.execute_command_on_thread()
        suite = unittest.TestSuite()
        my_custom_name = My_Custom_Name()
        device_list = self.deal_device_info()

        for device_info in range(len(device_list)):
            print('device_info:',device_list[device_info])
            room_name = device_list[device_info][0]
            device_name = device_list[device_info][1]
            model = device_list[device_info][2]
Exemplo n.º 12
0
 def run_method(self):
     # 启动appium服务
     server = Server()
     server.main()
     # 生成Server
     data = GetData()
     action_method = ActionMethod()
     lines = data.get_case_lines()
     time.sleep(5)
     for i in range(1, lines):
         handle_step = data.get_handle_step(i)
         element_key = data.get_element_key(i)
         handle_value = data.get_handle_value(i)
         expect_key = data.get_expect_element(i)
         expect_step = data.get_expect_handle(i)
         excute_method = getattr(action_method, handle_step)
         if element_key != None:
             excute_method(element_key, handle_value)
         else:
             excute_method(handle_value)
         if expect_step != None:
             expect_result = getattr(action_method, expect_step)
             expect_result(expect_key)
Exemplo n.º 13
0
class RunMain:
    def __init__(self):
        self.server = Server()
        self.server.main()
        base_driver = BaseDriver()
        self.driver = base_driver.android_driver(0)
        self.data = GetData()
        self.lines = self.data.get_case_lines()

    def operate_page(self, i):
        operate_page = self.data.get_operate_page(i)
        action_method = ActionMethod(operate_page, self.driver)
        return action_method

    def run_method(self):
        for i in range(1, self.lines):
            operate_page = self.operate_page(i)
            handle_step = self.data.get_handle_step(i)
            element_key = self.data.get_element_key(i)
            handle_value = self.data.get_handle_value(i)
            expect_element = self.data.get_expect_element(i)
            expect_step = self.data.get_expect_handle(i)

            excute_method = getattr(operate_page,
                                    handle_step)  # excute_method是一个对象,加括号才被执行
            if element_key is not None:
                excute_method(element_key, handle_value)
            else:
                excute_method(handle_value)
            if expect_step is not None:
                expect_result = getattr(operate_page, expect_step)
                result = expect_result(expect_element)
                if result is not None:
                    self.data.write_value(i, "PASS")
                else:
                    self.data.write_value(i, "FAIL")
Exemplo n.º 14
0
 def run_test(self):
     server = Server()
     server.execute_command_on_thread()
     suite = unittest.TestSuite()
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(T1))
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(T2))
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(T3))
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(T4))
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(T5))
     filename = '../report//HTMLReport.html'
     with open(filename, 'wb') as  f:
         HTMLTestRunner.HTMLTestRunner(stream=f,
                                       title='MathFunc Test Report',
                                       description='测试报告详情:').run(suite)
     server.kill_server()
Exemplo n.º 15
0
def stop_appium():
    server = Server()
    server.kill_server()
Exemplo n.º 16
0
 def __init__(self):
     self.write_file = WriteUserCommand()
     self.server = Server()
Exemplo n.º 17
0
def appium_init():
    server = Server()
    server.main()
    @classmethod
    def tearDownClass(cls):
        cls.driver.remove_app('com.codemao.dan')
        cls.driver.quit()

    def test_case01(self):
        self.guide.skip_guide()
        self.tab.switch_user_page()
        self.user.open_login_page()
        self.user.login_by_password(username='******', password='******')


def get_case(order):
    TestUser.ORDER = order
    suite = unittest.TestSuite()
    suite.addTest(TestUser('test_case01'))
    html_file = f'{root_path}/report/HTMLReport{order}.html'
    with open(html_file, "wb") as fp:
        HTMLTestRunner.HTMLTestRunner(fp).run(suite)


if __name__ == "__main__":
    server = Server()
    server.start_appium()
    time.sleep(10)

    for i in range(len(server.device_list)):
        print(i)
        t = Process(target=get_case, args=(i, ))
        t.start()
Exemplo n.º 19
0
 def __init__(self):
     self.server = Server()
     self.server.main()
     self.case_data = GetCaseExcelData()
     self.action_method = ActionMethod()
Exemplo n.º 20
0
def run_all_case(user_num):
    case_path = os.path.join(cur_path, 'case')
    report_path = os.path.join(cur_path, 'report')
    print(report_path)
    nowTime = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
    print(nowTime)
    #command = 'pytest {} --userNum={} --html={}\\{}.html --self-contained-html'.format(case_path, user_num, report_path, nowTime)
    command = 'pytest {case_path} --userNum={user_num} --html=./report/Phone{user_num}_{nowTime}.html --self-contained-html'.format(
        case_path=case_path, user_num=user_num, nowTime=nowTime)
    print(command)
    cmd.excute_cmd(command)


if __name__ == '__main__':
    server = Server()
    server.main()

    process = []
    for user_num in range(get_count()):
        print(user_num)
        p = multiprocessing.Process(target=run_all_case, args=(user_num, ))
        process.append(p)
    for p in process:
        p.start()

    for p in process:
        p.join()

    server.kill_server()
Exemplo n.º 21
0
    suite.addTest(Ctrl_Ln1_V1_Case('test_case25'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case26'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case27'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case28'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case29'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case30'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case31'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case32'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case33'))
    suite.addTest(Ctrl_Ln1_V1_Case('test_case34'))

    # unittest.TextTestRunner().run(suite)
    # 定义个报告存放的路径,支持相对路径
    # filename = '../report/tesecase'+str(i)+'_report'+'.html'
    # filename = '../report/HTMLReport.html'
    filename = '/Users/lumi/Documents/items/MIOT/Appium_Android_RPC/report/HTMLReport.html'
    file_result = open(filename, 'wb')
    # 定义测试报告
    HTMLTestRunner.HTMLTestRunner(stream=file_result,
                                  title='Aqara墙壁开关(零火线单键版)测试用例结果',
                                  description='测试报告详情:').run(suite)
    file_result.close()


if __name__ == '__main__':
    server = Server()
    server.execute_command_on_thread()
    get_suite()
    server.kill_server()
Exemplo n.º 22
0
def appium_init():
    server = Server()
    server.main("teacher")
Exemplo n.º 23
0
 def test_get_device(self):
     server = Server()
     device_info = server.get_devices()
     print(device_info)
Exemplo n.º 24
0
 def __init__(self, i):
     server = Server()
     server.main()
     time.sleep(20)  #等待appium完全启动
     self.action_method = ActionMethod(i)
Exemplo n.º 25
0
def appium_init():
    server = Server()
    server.main()
    time.sleep(20)
Exemplo n.º 26
0
def appium_stop():
    server = Server()
    server.kill_server()
Exemplo n.º 27
0
def appium_init():
    #启动appium
    server = Server()
    server.main()
Exemplo n.º 28
0
 def start_appium(self, device, appium_port, bootstrap_port):
     server = Server()
     server.start_appium(device, appium_port, bootstrap_port)
     logging.debug("start_appium" + str(device) + str(appium_port) +
                   str(bootstrap_port))
     self._success()
Exemplo n.º 29
0
    def start_test(self):
        server = Server()
        port = server.start_server()

        driver = Driver()
        driver.start_driver(port)
Exemplo n.º 30
0
def appium_init():
    server = Server()
    server.main("parents")