对注册页面进行封装和编辑注册测试用例

这次在进行注册页面的封装时,没有继承BasePage基础页面,而是直接调用poium测试库来实现Page功能

关乎poium测试库的使用这里略过。。

在编写注册测试用例时也用到了ddt模块的实现数据驱动参数化的功能,现实一个测试函数来验证多种情况,

在函数里面要做的就是对json文件种读取出来的name进行判断。

 1 import os, sys, time
 2 from poium import Page, PageElement
 3 
 4 base_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 5 
 6 sys.path.append(base_dir + '\public')
 7 '''
 8 利用poium测试库来进行Page封装,真真的实现元素定位和元素操作分离。。。。
 9 '''
10 
11 class Enorllpage(Page):
12 
13     """支持的定位方法Please use a locator:'id_'、'name'、'class_name'、'css'、'xpath'、'link_text'、'partial_link_text'."""
14 
15     clause = PageElement(name='submit')     #条款
16     userna_box = PageElement(name='username')    #名称
17     email_box = PageElement(name='email')       #邮箱
18     password_box = PageElement(id_='password')      #密码
19     pwd_confirm = PageElement(name='password_confirm')      #再次确认密码
20     confirm = PageElement(name='submit')    #提交
21     out = PageElement(id_='logout')
22 
23     '''用例断言'''
24     enorll_succeed = PageElement(id_='myprofile')
25 
26     '''您所选择的会员名称已被注册使用. 请改别的会员名称.'''
27     enorll_fail = PageElement(xpath="//table[@class='forumline']/tbody/tr[7]/td/span/font")
28 
29     def Enorll_fail_assert(self):
30         error = self.driver.switch_to.alert.text
31         time.sleep(0.5)
32         self.driver.switch_to.alert.accept()
33         return error
enorllPage.py
  1 from EnorllPage import Enorllpage
  2 import os
  3 import sys
  4 import time
  5 import unittest
  6 import ddt
  7 import random
  8 from browser import Browser
  9 from img import create_img
 10 
 11 '''LoginPage路径'''
 12 base_dir = os.path.dirname((os.path.abspath(__file__)))
 13 sys.path.append(base_dir + '\home_page')
 14 
 15 '''browser路径'''
 16 BASE_DIR = os.path.dirname(os.path.dirname(
 17     os.path.dirname(os.path.abspath(__file__))))
 18 sys.path.append(BASE_DIR + '\driver')
 19 
 20 '''导入截图程序'''
 21 img_dir = os.path.dirname(((os.path.dirname(os.path.abspath(__file__)))))
 22 sys.path.append(img_dir + '\pubilc')
 23 
 24 
 25 @ddt.ddt
 26 class Enorlltest(Browser):
 27     @ddt.file_data(base_dir + '\CaseData\enorlluser.json')
 28     def test_case(self, name, email, pwd, pwd_, ):
 29         obj = Enorllpage(self.driver)
 30         obj.get("http://192.168.117.9:8080/jforum/user/insert.page")
 31         obj.clause.click()
 32         if name == "" and email == "":
 33             name = ''.join(i for i in random.sample('zyxwvutsrqponmlkjihgfedcbaABCDEFGHIJKLMNOPQRSTUVWX', 5))
 34             email = ''.join(str(i) for i in random.sample(range(0, 11), 10)) + '@qq.com'
 35 
 36             obj.userna_box.send_keys(name)
 37             obj.email_box = email
 38             obj.password_box = pwd
 39             obj.pwd_confirm = pwd_
 40             obj.confirm.click()
 41             assert obj.enorll_succeed.text == '个人资料'
 42             create_img(self.driver, '注册成功.png')
 43             obj.out.click()
 44         '''失败的用例'''
 45         if name == "DADDAA":
 46             obj.userna_box.send_keys(name)
 47             obj.email_box = email
 48             obj.password_box = pwd
 49             obj.pwd_confirm = pwd_
 50             obj.confirm.click()
 51             error_test = obj.Enorll_fail_assert()
 52             assert error_test == '两次输入的密码不合'
 53             create_img(self.driver, '密码不一致.png')
 54             time.sleep(1)
 55 
 56         elif name == '':
 57             obj.userna_box.send_keys(name)
 58             obj.email_box = email
 59             obj.password_box = pwd
 60             obj.pwd_confirm = pwd_
 61             obj.confirm.click()
 62             error_test = obj.Enorll_fail_assert()
 63             assert error_test, '请填写会员名称输入框'
 64             create_img(self.driver, '用户名为空.png')
 65 
 66         elif name == 'admin':
 67             obj.userna_box.send_keys(name)
 68             obj.email_box = email
 69             obj.password_box = pwd
 70             obj.pwd_confirm = pwd_
 71             obj.confirm.click()
 72             error_test = obj.enorll_fail.text
 73             assert '会员名称已被注册使用' in error_test
 74             create_img(self.driver, '会员重名.png')
 75 
 76         elif name == "zxcv":
 77             obj.userna_box.send_keys(name)
 78             obj.email_box = email
 79             obj.password_box = pwd
 80             obj.pwd_confirm = pwd_
 81             obj.confirm.click()
 82             error_test = obj.Enorll_fail_assert()
 83             assert error_test, '请正确的填写电子邮件输入框'
 84             create_img(self.driver, '邮箱输入框为空.png')
 85 
 86         elif name == "replace":
 87             obj.userna_box.send_keys(name)
 88             obj.email_box = email
 89             obj.password_box = pwd
 90             obj.pwd_confirm = pwd_
 91             obj.confirm.click()
 92             error_test = obj.Enorll_fail_assert()
 93             assert error_test, '请正确的填写电子邮件输入框'
 94             create_img(self.driver, '邮箱格式错误.png')
 95 
 96         elif name == "split":
 97             obj.userna_box.send_keys(name)
 98             obj.email_box = email
 99             obj.password_box = pwd
100             obj.pwd_confirm = pwd_
101             obj.confirm.click()
102             error_test = obj.Enorll_fail_assert()
103             assert error_test, '请填写密码输入框'
104             create_img(self.driver, '密码输入框为空.png')
105 
106 
107 if __name__ == "__main__":
108     unittest.main()
test_enorll.py
原文地址:https://www.cnblogs.com/97xiaolai/p/11738835.html