zoukankan      html  css  js  c++  java
  • 对注册页面进行封装和编辑注册测试用例

    这次在进行注册页面的封装时,没有继承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
  • 相关阅读:
    sqlplus 登陆使用
    PLSQL设置显示的字符集及设置
    PL/SQL Developer使用技巧、快捷键
    微信小程序开发常见问题分析
    微信小程序如何使用PHP语言获取数据
    小程序获取网络类型代码
    微信小程序http转https
    小程序和Vue有哪些区别
    微信小程序时间标签与范围联动设计实现
    微信小程序http接口封装怎么实现
  • 原文地址:https://www.cnblogs.com/97xiaolai/p/11738835.html
Copyright © 2011-2022 走看看