对登录页面进行封装和编辑登录测试用例

LoginPage.py实现登录页面的封装,test_login.py编写登录测试用例,

登录测试要填入参数,且要验证多种情况所以要编写多条测试函数,

为了实现一条测试函数验证多种测试情况,可以利用数据参数化来实现。{笔者使用bbt模块读取json文件来实现}

登录用户数据___Userdata.json
{

"admin登录成功": {"name": "admin", "password": "admin"},
"jack登录成功": {"name": "jack", "password": "123456"},
"abc登录失败": {"name": "abc", "password": "123456"}
}
 1 from BasePage import Page
 2 import os
 3 import sys
 4 
 5 base_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 6 
 7 sys.path.append(base_dir + '\public')
 8 
 9 
10 class Loginpage(Page):
11     url = "http://192.168.117.9:8080/jforum/user/login.page"
12 
13     def username(self, parames):
14         self.by_name("username").send_keys(parames)
15 
16     def password(self, pwd):
17         self.by_name("password").send_keys(pwd)
18 
19     def submit(self):
20         self.by_name("login").click()
21 
22     def out(self):
23         self.by_id('logout').click()
24 
25     """获取断言点"""
26 
27     def assetr_succeed(self):
28         return self.by_id("myprofile").text
29 
30     def assetr_fialed(self):
31         return self.by_id('invalidlogin').text
LoginPage.py
 1 from LoginPage import Loginpage
 2 import os, sys, time, unittest, ddt
 3 from browser import Browser
 4 from img import create_img
 5 
 6 '''LoginPage路径'''
 7 base_dir = os.path.dirname((os.path.abspath(__file__)))
 8 sys.path.append(base_dir + '\home_page')
 9 
10 '''browser路径'''
11 BASE_DIR = os.path.dirname(os.path.dirname(
12     os.path.dirname(os.path.abspath(__file__))))
13 sys.path.append(BASE_DIR + '\driver')
14 
15 '''导入截图程序'''
16 img_dir = os.path.dirname(((os.path.dirname(os.path.abspath(__file__)))))
17 sys.path.append(img_dir + '\pubilc')
18 
19 
20 @ddt.ddt
21 class Logintest(Browser):
22 
23     @ddt.file_data(base_dir + '\CaseData\Userdata.json')  # 利用ddt模式来实现数据的参数化
24     def test_case(self, name, password):
25         obj = Loginpage(self.driver)
26         obj.open()
27         obj.username(name)
28         obj.password(password)
29         obj.submit()
30         if name != "abc":
31             self.assertEqual(obj.assetr_succeed(), "个人资料")
32             time.sleep(2)
33             create_img(self.driver, name + ".png")
34             obj.out()
35         else:
36             self.assertEqual(obj.assetr_fialed(), "您输入了无效的用户名或错误的密码")
37             create_img(self.driver, name + ".png")
38 
39             time.sleep(2)
40 
41 
42 if __name__ == "__main__":
43     unittest.main()
test_login.py
原文地址:https://www.cnblogs.com/97xiaolai/p/11738596.html