- 如果一个用例目录下所有Python文件都需要相同的初始化、清除,就需要在该目录下创建一个__str__.py的文件
- 公共的代码提取到__str__.py文件中,函数名和单个Python文件初始化、清除时一致
- __str__.py文件代码如下:
1 from lib.webui import * 2 3 4 def suite_setup(): 5 INFO('单个用例目录下的 suite_setup') 6 open_browser() 7 mgr_login() 8 9 10 def suite_teardown(): 11 INFO('单个用例目录下的 suite_teardown') 12 wd = GSTORE['wd'] 13 wd.quit()
- 管理员操作.py
1 from time import sleep 2 from lib.webui import * 3 4 5 def suite_setup(): 6 INFO('suite_setup') 7 8 9 def suite_teardown(): 10 INFO('suite_teardown') 11 12 class UI_0101: 13 name = '检查操作菜单 UI_0101' 14 15 # 初始化方法 16 def setup(self): 17 INFO('UI_0101 setup') 18 19 # 清除方法 20 def teardown(self): 21 INFO('UI_0101 teardown') 22 23 def teststeps(self): 24 STEP(1, '获取左边菜单栏') 25 wd = GSTORE['wd'] 26 eles = wd.find_elements(By.CSS_SELECTOR, '.sidebar-menu span') 27 menuText = [ele.text for ele in eles] 28 INFO(menuText) 29 STEP(2, '检查左边菜单栏') 30 CHECK_POINT('检查菜单是否正确', ['客户', '药品', '订单'] == menuText[:3]) 31 32 33 class UI_0102: 34 name = '添加客户 UI_0102' 35 36 # 初始化方法 37 def setup(self): 38 INFO('UI_0102 setup') 39 40 # 清除方法 41 def teardown(self): 42 INFO('UI_0102 teardown') 43 44 def teststeps(self): 45 STEP(1, '点击左侧客户菜单') 46 wd = GSTORE['wd'] 47 # 先找到上层节点,缩小查找范围 48 sidebarMenu = wd.find_element(By.CLASS_NAME, 'sidebar-menu') 49 50 # 再找到内部元素 51 elements = sidebarMenu.find_elements(By.TAG_NAME, 'span') 52 53 # 第一个span对应的菜单是 客户,点击它 54 elements[0].click() 55 56 STEP(2, '添加客户') 57 58 # 点击添加客户按钮 59 wd.find_element(By.CLASS_NAME, 'glyphicon-plus').click() 60 61 # form-contorl 对应3个输入框 62 inputs = wd.find_elements(By.CSS_SELECTOR, '.add-one-area .form-control') 63 64 # 输入客户姓名 65 inputs[0].send_keys('南京中医院') 66 # 输入联系电话 67 inputs[1].send_keys('2551867858') 68 # 输入客户描述 69 inputs[2].send_keys('江苏省-南京市-秦淮区-汉中路-16栋504') 70 71 # 第1个 btn-xs 就是创建按钮, 点击创建按钮 72 wd.find_element(By.CSS_SELECTOR, '.add-one-area .btn-xs').click() 73 74 # 等待1秒 75 sleep(1) 76 77 STEP(3, '检查添加信息') 78 79 # 找到 列表最上面的一栏 80 item = wd.find_elements(By.CLASS_NAME, 'search-result-item')[0] 81 82 fields = item.find_elements(By.TAG_NAME, 'span')[:6] 83 84 texts = [field.text for field in fields] 85 INFO(texts) 86 87 # 预期内容为 88 expected = [ 89 '客户名:', 90 '南京中医院', 91 '联系电话:', 92 '2551867858', 93 '地址:', 94 '江苏省-南京市-秦淮区-汉中路-16栋504' 95 ] 96 97 CHECK_POINT('客户信息和添加内容一致 ', 98 texts == expected)
- 管理员操作2.py
1 from time import sleep 2 from lib.webui import * 3 4 5 def suite_setup(): 6 INFO('suite_setup') 7 8 9 def suite_teardown(): 10 INFO('suite_teardown') 11 12 13 class UI_0301: 14 name = '检查操作菜单 UI_0301' 15 16 # 初始化方法 17 def setup(self): 18 INFO('UI_0301 setup') 19 20 # 清除方法 21 def teardown(self): 22 INFO('UI_0301 teardown') 23 24 def teststeps(self): 25 STEP(1, '获取左边菜单栏') 26 wd = GSTORE['wd'] 27 eles = wd.find_elements(By.CSS_SELECTOR, '.sidebar-menu span') 28 menuText = [ele.text for ele in eles] 29 INFO(menuText) 30 STEP(2, '检查左边菜单栏') 31 CHECK_POINT('检查菜单是否正确', ['客户', '药品', '订单'] == menuText[:3]) 32 33 34 class UI_0302: 35 name = '添加客户 UI_0302' 36 37 # 初始化方法 38 def setup(self): 39 INFO('UI_0302 setup') 40 41 # 清除方法 42 def teardown(self): 43 INFO('UI_0302 teardown') 44 45 def teststeps(self): 46 STEP(1, '点击左侧客户菜单') 47 wd = GSTORE['wd'] 48 # 先找到上层节点,缩小查找范围 49 sidebarMenu = wd.find_element(By.CLASS_NAME, 'sidebar-menu') 50 51 # 再找到内部元素 52 elements = sidebarMenu.find_elements(By.TAG_NAME, 'span') 53 54 # 第一个span对应的菜单是 客户,点击它 55 elements[0].click() 56 57 STEP(2, '添加客户') 58 59 # 点击添加客户按钮 60 wd.find_element(By.CLASS_NAME, 'glyphicon-plus').click() 61 62 # form-contorl 对应3个输入框 63 inputs = wd.find_elements(By.CSS_SELECTOR, '.add-one-area .form-control') 64 65 # 输入客户姓名 66 inputs[0].send_keys('南京中医院') 67 # 输入联系电话 68 inputs[1].send_keys('2551867858') 69 # 输入客户描述 70 inputs[2].send_keys('江苏省-南京市-秦淮区-汉中路-16栋504') 71 72 # 第1个 btn-xs 就是创建按钮, 点击创建按钮 73 wd.find_element(By.CSS_SELECTOR, '.add-one-area .btn-xs').click() 74 75 # 等待1秒 76 sleep(1) 77 78 STEP(3, '检查添加信息') 79 80 # 找到 列表最上面的一栏 81 item = wd.find_elements(By.CLASS_NAME, 'search-result-item')[0] 82 83 fields = item.find_elements(By.TAG_NAME, 'span')[:6] 84 85 texts = [field.text for field in fields] 86 INFO(texts) 87 88 # 预期内容为 89 expected = [ 90 '客户名:', 91 '南京中医院', 92 '联系电话:', 93 '2551867858', 94 '地址:', 95 '江苏省-南京市-秦淮区-汉中路-16栋504' 96 ] 97 98 CHECK_POINT('客户信息和添加内容一致 ', 99 texts == expected)