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

    LoginPage.py实现登录页面的封装,test_login.py编写登录测试用例,

    登录测试要填入参数,且要验证多种情况所以要编写多条测试函数,

    为了实现一条测试函数验证多种测试情况,可以利用数据参数化来实现。{笔者使用bbt模块读取json文件来实现}

    登录用户数据___Userdata.json
    {

    "admin登录成功": {"name": "admin", "password": "admin"},
    "jack登录成功": {"name": "jack", "password": "123456"},
    "abc登录失败": {"name": "abc", "password": "123456"}
    }
     1 from BasePage import Page
     2 import os
     3 import sys
     4 
     5 base_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
     6 
     7 sys.path.append(base_dir + '\public')
     8 
     9 
    10 class Loginpage(Page):
    11     url = "http://192.168.117.9:8080/jforum/user/login.page"
    12 
    13     def username(self, parames):
    14         self.by_name("username").send_keys(parames)
    15 
    16     def password(self, pwd):
    17         self.by_name("password").send_keys(pwd)
    18 
    19     def submit(self):
    20         self.by_name("login").click()
    21 
    22     def out(self):
    23         self.by_id('logout').click()
    24 
    25     """获取断言点"""
    26 
    27     def assetr_succeed(self):
    28         return self.by_id("myprofile").text
    29 
    30     def assetr_fialed(self):
    31         return self.by_id('invalidlogin').text
    LoginPage.py
     1 from LoginPage import Loginpage
     2 import os, sys, time, unittest, ddt
     3 from browser import Browser
     4 from img import create_img
     5 
     6 '''LoginPage路径'''
     7 base_dir = os.path.dirname((os.path.abspath(__file__)))
     8 sys.path.append(base_dir + '\home_page')
     9 
    10 '''browser路径'''
    11 BASE_DIR = os.path.dirname(os.path.dirname(
    12     os.path.dirname(os.path.abspath(__file__))))
    13 sys.path.append(BASE_DIR + '\driver')
    14 
    15 '''导入截图程序'''
    16 img_dir = os.path.dirname(((os.path.dirname(os.path.abspath(__file__)))))
    17 sys.path.append(img_dir + '\pubilc')
    18 
    19 
    20 @ddt.ddt
    21 class Logintest(Browser):
    22 
    23     @ddt.file_data(base_dir + '\CaseData\Userdata.json')  # 利用ddt模式来实现数据的参数化
    24     def test_case(self, name, password):
    25         obj = Loginpage(self.driver)
    26         obj.open()
    27         obj.username(name)
    28         obj.password(password)
    29         obj.submit()
    30         if name != "abc":
    31             self.assertEqual(obj.assetr_succeed(), "个人资料")
    32             time.sleep(2)
    33             create_img(self.driver, name + ".png")
    34             obj.out()
    35         else:
    36             self.assertEqual(obj.assetr_fialed(), "您输入了无效的用户名或错误的密码")
    37             create_img(self.driver, name + ".png")
    38 
    39             time.sleep(2)
    40 
    41 
    42 if __name__ == "__main__":
    43     unittest.main()
    test_login.py
  • 相关阅读:
    poj 1201 Intervals 差分约束系统
    poj 3237 Tree 树链剖分+线段树
    hdu 2256 Problem of Precision 构造整数 + 矩阵快速幂
    hdu 5451 Best Solver 矩阵循环群+矩阵快速幂
    hdu 5769 Substring 后缀数组 + KMP
    hdu 5755 2016 Multi-University Training Contest 3 Gambler Bo 高斯消元模3同余方程
    hdu 5690 2016"百度之星"
    hdu 5738 2016 Multi-University Training Contest 2 Eureka 计数问题(组合数学+STL)
    hdu 5719 BestCoder 2nd Anniversary B Arrange 简单计数问题
    hdu 5720 BestCoder 2nd Anniversary Wool 推理+一维区间的并
  • 原文地址:https://www.cnblogs.com/97xiaolai/p/11738596.html
Copyright © 2011-2022 走看看