コード例 #1
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
 def _open(self, url):
     try:
         self.driver.get(url)
         self.driver.implicitly_wait(10)
     except Exception as e:
         log.info(e)
         raise ValueError('%s address access error, please check!' % url)
コード例 #2
0
ファイル: LoginTc.py プロジェクト: mojun123/pytest_demo
 def test_login_username_incorrect(self):
     """用户名不正确,密码正确,登录失败"""
     self.login.loginFunc(self.login.updowm[1][0], self.login.updowm[1][1])
     time.sleep(2)
     attr_text = self.login.getFailloginText()
     expect_text = "用户名或者密码错误"
     self.login.assertEqual(expect_text, attr_text)
     log.info("run completed! please check the test report")
コード例 #3
0
ファイル: login_page.py プロジェクト: mojun123/pytest_demo
    def clickLogBtn(self):
        """

        :return:
        """
        element = self.find_element_by_xpath(self.loginBtn)
        element.click()
        log.info("loginning...")
コード例 #4
0
ファイル: LoginTc.py プロジェクト: mojun123/pytest_demo
 def test_login_failed_username_password_error(self):
     """用户名和密码都错误,登录失败"""
     self.login.loginFunc(self.login.updowm[3][0], self.login.updowm[3][1])
     time.sleep(2)
     attr_text = self.login.getFailloginText()
     expect_text = "用户名或者密码错误"
     self.login.assertEqual(expect_text, attr_text)
     log.info("run completed! please check the test report")
コード例 #5
0
ファイル: LoginTc.py プロジェクト: mojun123/pytest_demo
 def test_login_failed_username_blank(self):
     """空的用户名,正确的密码,登录失败"""
     self.login.loginFunc(self.login.updowm[2][0], self.login.updowm[2][1])
     time.sleep(2)
     attr_text = self.login.getFailloginText()
     expect_text = "用户名或者密码错误"
     self.login.assertEqual(expect_text, attr_text)
     log.info("run completed! please check the test report")
コード例 #6
0
ファイル: myunit.py プロジェクト: mojun123/pytest_demo
    def tearDown(self):
        """

        :return:
        """
        self.driver.refresh()
        log.info(
            '************************test case run completed************************'
        )
コード例 #7
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
 def find_elements(self, by, arg, driver=None, timeout=30):
     driver = driver or self.driver
     try:
         element = WebDriverWait(
             driver,
             timeout).until(lambda driver: driver.find_elements(by, arg))
         return element
     except Exception as e:
         log.info('finding element timeout!, details')
コード例 #8
0
ファイル: myunit.py プロジェクト: mojun123/pytest_demo
    def setUp(self):
        """

        :return:
        """
        self.login = LoginPage(self.driver)
        self.login.open()
        log.info(
            '************************starting run test cases************************'
        )
コード例 #9
0
 def ieDriver(self):
     try:
         self.driver = webdriver.Ie()
     except Exception as e:
         log.info(
             'IEDriverServer.exe executable needs to be in PATH. Please download!'
         )
         raise e
     else:
         log.info("found the IE driver  successed !")
         return self.driver
コード例 #10
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
 def getValues(self, elements):
     value_list = []
     try:
         for element in elements:
             value = elements.text
             value_list.append(value)
     except Exception as e:
         log.info('read value failed')
         raise e
     else:
         return value_list
コード例 #11
0
 def fireFoxDriver(self):
     try:
         self.driver = webdriver.Firefox()
     except Exception as e:
         log.info(
             "FireFoxDriverServer.exe executable needs to be in PATH. Please download!"
         )
         raise e
     else:
         log.info("found the Firefox driver successed")
         return self.driver
コード例 #12
0
    def chromeDriver(self):

        try:
            self.driver = webdriver.Chrome()
        except Exception as e:
            log.info(
                'ChromeDriverServer.exe executable needs to be in PATH. Please download!'
            )
            raise e
        else:
            log.info("found the webdriver driver successed")
            return self.driver
コード例 #13
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
 def getValue(self, element):
     try:
         value = element.text
     except Exception:
         value = element.get_attribute("value")
         log.info('reading the element [%s] value [%s]' % (element, value))
         return value
     except:
         log.logger.exception('read value failed')
         raise Exception
     else:
         log.logger.info('reading the element [%s] value [%s]' %
                         (element, value))
         return value
コード例 #14
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
 def inputValue(self, element, value):
     """
     :param element: element参数是要页面元素的
     :param value:
     :return:
     """
     try:
         element.clear()
         element.send_keys(value)
     except Exception as e:
         log.info('typing value error!')
         raise e
     else:
         log.info('inputValue:[%s] is receiveing value [%s]' %
                  (element, value))
コード例 #15
0
ファイル: LoginTc.py プロジェクト: mojun123/pytest_demo
    def test_login_success_correct_username_password(self):
        """用户名正确,密码正确,登录成功"""
        self.login.loginFunc()
        time.sleep(2)
        currUrl = self.driver.current_url  #获取当前的url地址
        self.login.delete_all_cookies()

        try:
            self.assertIn("home", currUrl, "main not in current  url")
        except Exception:
            self.login.saveScreeenShot("correct_username_password_fail.png")
            raise
        else:
            self.login.saveScreeenShot('correct_username_password_pass.png')
            log.info("run completed! please check the test report")
コード例 #16
0
ファイル: testreport.py プロジェクト: mojun123/pytest_demo
def testreport():
    """

    :return:
    """
    currTime = time.strftime('%Y-%m-%d  %H_%M_%S')
    fileName = conf.reportDir + r"\report" + currTime + ".html"
    try:
        fp = open(fileName, 'wb')
    except Exception:
        log.info('[%s] open error cause Failed to generate test report' %
                 fileName)
    else:
        runner = HTMLTestRunner.HTMLTestRunner\
            (stream=fp,title="采购系统测试报告",
                        description="电脑配置待定"
            )
        log.info('successed to generate test report [%s]' % fileName)
        return runner, fp, fileName
コード例 #17
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
 def open(self):
     self._open(self.base_url)
     log.info('%s loading successed!' % self.base_url)
     return self.base_url
コード例 #18
0
ファイル: base.py プロジェクト: mojun123/pytest_demo
    def saveScreeenShot(self, filename):
        """

        :param filename:
        :return:
        """
        list_value = []
        list = filename.split('.')
        for value in list:
            list_value.append(value)
        if list_value[1] == 'png' or list_value[1] == 'jpg' or list_value[
                1] == "PNG" or list_value[1] == "JPG":
            if "fail" in list_value[0].split('_'):
                try:
                    self.driver.save_screenshot(
                        os.path.join(conf.failImagePath, filename))
                except Exception:
                    log.info("save screenshot failed")
                else:
                    log.info(
                        'the file [%s]  save screenshot successed under [%s]' %
                        (filename, conf.failImagePath))
            elif 'pass' in list_value[0]:
                try:
                    self.driver.save_screenshot(
                        os.path.join(conf.pasImagePath, filename))
                except Exception:
                    log.info("save screenshot failed")
                else:
                    log.info(
                        'the file [%s]  save screenshot successed under [%s]' %
                        (filename, conf.passImagePath))
            else:
                log.info(
                    'save screenshot failed due to [%s] format incorrect' %
                    filename)
        else:
            log.info(
                'the file name of [%s] format incorrect cause save screenshot failed, please check!'
                % filename)
コード例 #19
0
ファイル: myunit.py プロジェクト: mojun123/pytest_demo
 def tearDownClass(cls):
     cls.driver.quit()
     log.info('quit the browser success!')
コード例 #20
0
ファイル: login_page.py プロジェクト: mojun123/pytest_demo
 def getFailloginText(self):
     info = self.find_element_by_xpath(self.errMessage).text
     log.info("login fail")
     return info
コード例 #21
0
ファイル: login_page.py プロジェクト: mojun123/pytest_demo
 def getFailaccountText(self):
     info = self.find_element_by_xpath(self.accountNull).text
     log.info("login failed")
     return info
コード例 #22
0
ファイル: login_page.py プロジェクト: mojun123/pytest_demo
 def getFailpassText(self):
     info = self.find_element_by_xpath(self.passwordNull).text
     log.info("login failed")
     return info
コード例 #23
0
ファイル: myunit.py プロジェクト: mojun123/pytest_demo
 def setUpClass(cls):  #一个测试类(文件)执行一次打开浏览器, 节约每个用例打开一次浏览器的时间
     cls.driver = WDriver().chromeDriver()
     cls.driver.maximize_window()
     log.info("opened the browser successed!")