示例#1
0
 def setup_class(self):
     my_logger.info("##########所有测试用例之前,setupClass整个测试类只执行一次##########")
     print("##########所有测试用例之前,setupClass整个测试类只执行一次##########")
     self.driver = webdriver.Chrome()
     self.driver.get(CD.web_login_url)
     self.lg = LoginPage(self.driver)
     #点击登录的按钮,进入登陆的页面
     self.lg.enter_Login()
示例#2
0
 def prepare_login(self, driver, logging, name, testdatas):
     logging.info('前提:登录状态')
     BottomWidget(driver, logging, name).switch_bottom_widget('我')
     LoginPage(driver, logging, name).input_tele(testdatas['tele'])
     LoginPage(driver, logging, name).input_pwd(testdatas['pwd'])
     time.sleep(2)
     if UserPage(driver, logging, name).popbox_is_visiable():
         UserPage(driver, logging, name).click_popbox_btn_later()
     time.sleep(2)
     try:
         assert not IndexPage(driver, logging, name).visiable_login_btn()
         logging.info('确认登录成功!')
     except Exception as e:
         logging.exception('登录失败!')
         raise e
示例#3
0
 def test_login_2_passwd_wrongFormat(self, data1):
     my_logger.info('此时输入的用户名{0}密码是{1}'.format(data1['user'],
                                               data1['passwd']))
     #步骤 输入用户名密码点击登录
     self.lg.login(data1['user'], data1['passwd'])
     #断言  登录页面中,获取登陆框中文本内容
     #对比文本内容与期望值是否一致
     assert LoginPage(self.driver).pwd_errMsg(), data1['check']
示例#4
0
 def test_login_1_user_wrongFormat(self, data):
     my_logger.info('此时输入的用户名是{0}密码是{1}'.format(data['user'],
                                                data['passwd']))
     #步骤  输入用户名 密码点击登录
     self.lg.login(data['user'], data['passwd'])
     #断言,登录页面提示
     #登录页面中,获取登录框中文本内容
     #对比文本内容与期望值是否相等
     assert LoginPage(self.driver).user_errMsg() == data['check']
示例#5
0
 def test_login_tele_wrong(self, init_class_keep, init_session, testdatas):
     init_session.info('手机号输入错误用例')
     name = '手机号输入错误'
     if BottomWidget(init_class_keep, init_session,
                     name).visiable_bottom_widget('我'):
         BottomWidget(init_class_keep, init_session,
                      name).switch_bottom_widget('我')
     LoginPage(init_class_keep, init_session,
               name).input_tele(testdatas['tele'])
     time.sleep(2)
     try:
         assert LoginPage(init_class_keep, init_session,
                          name).get_popbox_text() == testdatas['msg']
         init_session.info('Test Pass!')
     except Exception as e:
         init_session.info('Test Fail')
         raise e
     finally:
         LoginPage(init_class_keep, init_session, name).popbox_prompt_btn()
示例#6
0
 def test_login_success(self, init_class_keep, init_session, testdatas):
     init_session.info('成功登录用例')
     name = '成功登录'
     BottomWidget(init_class_keep, init_session,
                  name).switch_bottom_widget('我')
     LoginPage(init_class_keep, init_session,
               name).input_tele(testdatas['tele'])
     LoginPage(init_class_keep, init_session,
               name).input_pwd(testdatas['pwd'])
     time.sleep(2)
     if UserPage(init_class_keep, init_session, name).popbox_is_visiable():
         UserPage(init_class_keep, init_session,
                  name).click_popbox_btn_later()
     time.sleep(2)
     # BottomWidget(init_keep,init_session,name).switch_bottom_widget('首页')
     try:
         assert not IndexPage(init_class_keep, init_session,
                              name).visiable_login_btn()
         init_session.info('确认登录成功!')
     except Exception as e:
         init_session.exception('登录失败!')
         raise e
示例#7
0
class TestLogin():

    #针对整个类文件的,在整个测试类开始执行前打开浏览器,并进行初始化

    def setup_class(self):
        my_logger.info("##########所有测试用例之前,setupClass整个测试类只执行一次##########")
        print("##########所有测试用例之前,setupClass整个测试类只执行一次##########")
        self.driver = webdriver.Chrome()
        self.driver.get(CD.web_login_url)
        self.lg = LoginPage(self.driver)
        #点击登录的按钮,进入登陆的页面
        self.lg.enter_Login()

    # 在整个测试类执行完,关闭浏览器
    def teardown_class(self):
        my_logger.info(
            "############所有测试用例之后,tearDownClass,整个测试类只执行一次##########")
        print("############所有测试用例之后,tearDownClass,整个测试类只执行一次##########")
        self.driver.quit()

    #为了每个测试用例不互相干扰,所以每个测试用例执行完毕后刷新浏览器
    def teardown(self):
        my_logger.info("********tearDown每个测试用例执行后都要执行一次********")
        print("********tearDown每个测试用例执行后都要执行一次********")
        self.driver.refresh()

    """
    unitest中用例的执行顺序,是按照ACSII码的顺序加载测试用例的,数字与字母的顺序为0--9,A--Z,a--z,
    因为正常的用例执行后,会进行页面的跳转,所以才会把正常的用例放在最后面执行,因此才给用例编上号
    """
    #异常用例   用户不存在,用户名为空

    @pytest.mark.parametrize('data', LD.userwrongdate)
    def test_login_1_user_wrongFormat(self, data):
        my_logger.info('此时输入的用户名是{0}密码是{1}'.format(data['user'],
                                                   data['passwd']))
        #步骤  输入用户名 密码点击登录
        self.lg.login(data['user'], data['passwd'])
        #断言,登录页面提示
        #登录页面中,获取登录框中文本内容
        #对比文本内容与期望值是否相等
        assert LoginPage(self.driver).user_errMsg() == data['check']

    #
    # #
    # #异常用例  密码为空,密码不正确
    @pytest.mark.parametrize('data1', LD.passwdwrongdata)
    def test_login_2_passwd_wrongFormat(self, data1):
        my_logger.info('此时输入的用户名{0}密码是{1}'.format(data1['user'],
                                                  data1['passwd']))
        #步骤 输入用户名密码点击登录
        self.lg.login(data1['user'], data1['passwd'])
        #断言  登录页面中,获取登陆框中文本内容
        #对比文本内容与期望值是否一致
        assert LoginPage(self.driver).pwd_errMsg(), data1['check']

    # #正常用例    登陆成功的用例
    def test_login_3_success(self):
        my_logger.info('正常登陆的用户名是{0},密码是{1}'.format(LD.loginsucess['user'],
                                                    LD.loginsucess['passwd']))
        #输入用户名密码,点击登录
        self.lg.login(LD.loginsucess['user'], LD.loginsucess['passwd'])
        #断言,首页当中能否找到用户这个元素
        assert IndexPage(self.driver).isExitUser()


# if __name__=="__main__":
#     pytest