1.TestCases目录下的模块

TestCases目录下是存放测试用例的目录。

TestCases目录下的测试用例采用unittest框架来构建。

例如:登录功能的测试用例。(test_1_login.py)

# --^_^-- coding:utf-8 --^_^--
# @Remark:测试登录功能 import unittest
from selenium import webdriver
from PageObjects.login.login_page import LoginPage
from PageObjects.home.home_page import HomePage
from TestDatas import login_datas as ld
from TestDatas import Comm_Datas as cd
from Common import logger
import logging
import ddt
import time @ddt.ddt
class TestLogin(unittest.TestCase):
@classmethod
def setUpClass(cls):
# 前置:打开浏览器,登录网页
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
cls.driver.get(cd.web_login_url)
cls.lp = LoginPage(cls.driver) # 刷新一下当前页面
def tearDown(self):
self.driver.refresh() # 正常用例
def test_login_2_success(self):
logging.info("*********登录用例:正常场景-登录成功*********")
# 步骤:登录页面-登录操作
self.lp.login(ld.success_data["user"], ld.success_data["pwd"])
time.sleep(3)
# 断言:首页-【今日事务】这个元素存在
self.assertTrue(HomePage(self.driver).check_login_ele_exists()) # 异常用例
@ddt.data(*ld.wrong_datas)
def test_login_1_error(self, data):
time.sleep(2)
logging.info("*********登录用例:异常场景-登录失败*********")
self.lp.login(data["user"], data["pwd"])
time.sleep(2)
# 断言:判断提示信息是否一致
self.assertEqual(data["check"],LoginPage(self.driver).get_errorMsg()) @classmethod
def tearDownClass(cls):
# 后置:关闭浏览器
cls.driver.quit()

登录的用例函数,只需要调用在PageObjects目录下登录页面的登录功能即可,而不需要再次编写元素定位和元素操作。

登录的用例分成登录成功和登录失败的用例,登录失败有(用户名错误,密码错误)等情况,但是参数就只有用户名和密码,只不过值发生变化,所以可以用ddt模块来做参数化,这样就不需要写多条登录失败的测试用例。

最新文章

  1. oc中的枚举定义
  2. SQL数据库基础(八)
  3. Js 获取当前时间
  4. sql执行计划
  5. [DEncrypt] RSACryption--RSA加密/解密字符串 (转载)
  6. (转载)Javascript 进阶 作用域 作用域链
  7. 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
  8. Unity3D-游戏中的技能碰撞检测
  9. Windows 2012建立域控(AD DS)详解
  10. hive新特性reflect函数介绍
  11. boto3库限速
  12. Shell脚本学习 - 基本内容以及数据格式
  13. qt之fiddler抓包
  14. java分布式电子商务云平台b2b b2c o2o需要准备哪些技术??
  15. [ 10.4 ]CF每日一题系列—— 486C
  16. [UE4]Safe Zone:安全区域
  17. 651. 4 Keys Keyboard复制粘贴获得的最大长度
  18. 入坑tensorflow
  19. java常量
  20. (转)MVC语法-基础

热门文章

  1. Autofac的基本使用---5、常用配置
  2. 微服务 - 服务消费(六)Ribbon
  3. BOM主数据-用ECN实现可变BOM
  4. 用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
  5. freemarker读取session里面的值
  6. 所有CSS字体属性
  7. 决胜面试之---SQL经典面试题
  8. java开发手册之哨兵语句
  9. TurtleBot3 Waffle (tx2版华夫)(13)RC100遥控杆控制
  10. 第13章节 BJROBOT 雷达跟随【ROS全开源阿克曼转向智能网联无人驾驶车】