思路

将页面操作与用例case分别封装,编写case时就可以用同一个操作方法对应多个case

如下图:

PageGUI:存放页面操作方法,每个页面写一个文件,每个文件中写同一个页面不同的操作,例如检索、排序等

case:存放自动化用例,主要是引用PageGUI中封装的方法,传入不同的参数达到对应不同case的目的

 

以 博客园 后台登陆画面为例:

 

 

loginGUI.py

 1 # coding = utf-8
 2 from selenium import webdriver
 3 
 4 
 5 class loginGUI:
 6     def login(self,driver,username,password,autoLogin_checkbox=None):
 7 
 8         # GUI中定位所需元素
 9         dr = self.get_driver(driver)
10         username_element = dr.find_element_by_id('input1')
11         password_element = dr.find_element_by_id('input2')
12         autoLogin_checkbox_element = dr.find_element_by_id('remember_me')
13         login_btn = dr.find_element_by_id('signin')
14 
15         # 执行步骤
16         username_element.send_keys(username)
17         password_element.send_keys(password)
18         self.checkBox_operation(autoLogin_checkbox_element,autoLogin_checkbox)
19         login_btn.click()
20 
21     # 判断 下次自动登录 传的值是否正确
22     def checkBox_operation(self,autoLogin_checkbox_element,autoLogin_checkbox):
23         if autoLogin_checkbox == True:
24             if autoLogin_checkbox_element.is_selected() == False:  # 判断是否被选中
25                 return autoLogin_checkbox_element.click()
26 
27         elif autoLogin_checkbox == False or autoLogin_checkbox == None:
28             if autoLogin_checkbox_element.is_selected() == True:  # 判断是否被选中
29                 return autoLogin_checkbox_element.click()
30         else:
31             return None
32 
33     def get_driver(self,driver):
34         url= 'https://passport.cnblogs.com/user/signin'
35 
36         if driver == 'chrome':
37             driver = webdriver.Chrome()
38         elif driver == 'edge':
39             driver = webdriver.Edge()
40         else:
41             driver = webdriver.Safari()
42 
43         driver.get(url)
44         driver.implicitly_wait(10)
45         return driver

 

Testlogin.py

 1 from PageGUI import loginGUI
 2 import unittest
 3 import time
 4 
 5 
 6 class TestCase(unittest.TestCase):
 7     def test_login(self):
 8         login = loginGUI()
 9         login.login(driver='chrome',username='123',password='345',autoLogin_checkbox=1)
10         time.sleep(3)
11 
12     def test_login_usernameError(self):
13         pass
14 
15     def test_login_passwordError(self):
16         pass
17 
18 
19 if __name__ == '__main__':
20     unittest.main()

 

以上只是对case的对应

更多的可以将 driver 、测试数据进行整理存放

 

原文发布在 软件羊皮卷 微信公众号中,欢迎大家关注

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!