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
  • 相关阅读:
    poj 2728 Desert King
    uva 439 Knight Moves
    hdu 1875 畅通工程再续
    scau实验题 8600 骑士周游问题(有障碍物)
    scau实验题 8596 Longest Ordered Subsequence
    poj 1679 The Unique MST
    uva 527 Oil Deposits
    poj 2533 Longest Ordered Subsequence
    .net 程序员 java 开发入门
    Collation conflict occur at operation on User define funtion & table's column
  • 原文地址:https://www.cnblogs.com/97xiaolai/p/11738835.html
Copyright © 2011-2022 走看看