unittest自定义封装与应用

摘要:
自己basepage=basepage(浏览器('chrome')。getdriver())自身。主页。等待时间(10)自己。BasePage。openurl(self.url)self。主页。setmaxbrowser()“”封装方法以结束测试“”“defearDown(self)->

和大家分享一个自己二次封装uniitest的方法,大家可以在评论区多多指教,一起分享学习;

一、unittest基类封装

import os
import unittest
from common.log_print import Log
from common.get_config import getconfig
from common.base_page_info import BasePage
from common.browser import Browser


class SeleniumBaseCase(unittest.TestCase):

"""
封装一个setUp类方法

"""
@classmethod
def setUpClass(cls) -> None:
Log.logsinfo("=======测试类开始=======")
cls.url=getconfig.geturl

"""
封装一个初始化测试工作方法

"""
def setUp(self) -> None:
self.basepage=BasePage(Browser('chrome').getdriver())
self.basepage.waittime(10)
self.basepage.openurl(self.url)
self.basepage.setmaxbrowser()

"""
封装一个结束测试工作方法

"""

def tearDown(self) -> None:
self.basepage.timesleep(4)
self.basepage.closebrowser()

"""
封装一个tearDown类方法

"""
@classmethod
def tearDownClass(cls) -> None:
Log.logsinfo("=======测试类结束=======")

二、引用uniitest基类

import unittest
from action.login_action import LoginAction
from common.selenium_base_case import SeleniumBaseCase
from common.log_print import Log


class Logintest(SeleniumBaseCase):

def setUp(self) -> None:
"""
继承父类的setUp方法

"""

super().setUp()

"""
也可以在setUp方法中自定义功能,前提要写继承父类的方法 super().setUp()

"""
Log.logsinfo('登录测试用例开始')

def test_success_login(self):
'''登录成功测试用例'''
login_action=LoginAction(self.basepage.driver)
main_page=login_action.suceseelogin('admin','a12345678')
actual_result=main_page.get_username()
self.assertEqual(actual_result,'admin','登录成功用例执行失败')

def tearDown(self) -> None:

"""
继承父类的tearDown方法

"""
super().tearDown()

Log.logsinfo('登录测试用例结束')



自定义封装,其实就是一个三层继承 ,这样我们引用的时候会更方便;

Logintest----》SeleniumBaseCase----》unittest.TestCase

免责声明:文章转载自《unittest自定义封装与应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇error LNK2019: 无法解析的外部符号,解决办法wpf中的全局键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

粘包问题及解决方案

一、粘包问题问题1: 无法确认对方发送过来数据的大小。 ‘client.py' import socket client = socket.socket() client.connect( ('127.0.0.1', 9000)) while True: cmd = input('客户端输入的内容: ') client.send(cmd.encode(...

Ext分页之php中,真分页显示

这是我经过很多天调试的真分页显示Ext组件 显示页面ext.php 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <title>Getting Sta...

使用Kubeflow构建机器学习流水线

在此前的文章中,我已经向你介绍了Kubeflow,这是一个为团队设置的机器学习平台,需要构建机器学习流水线。 在本文中,我们将了解如何采用现有的机器学习详细并将其变成Kubeflow的机器学习流水线,进而可以部署在Kubernetes上。在进行本次练习的时候,请考虑你该如何将现有的机器学习项目转换到Kubeflow上。 我将使用Fashion MNIST作...

dropload.js(上拉加载插件使用过程中遇到的坑)

     dropload.js相关介绍和使用以及demo下载详见:https://github.com/ximan/dropload (原文出处)   之前因为项目需要一个上拉加载的效果,然后无意中看到了此插件,用了之后感觉挺好用的,就是坑太多,下面列出一些我在实际使用中遇到的问题。   注:如果在使用该插件的时候遇到问题,确实无法解决,也没有人能帮你解...

使用html2canvas和jsPdf实现打印功能

最近做项目中,️遇到过实现模版打印功能,网上也找到很多资料可以实现,有的方式可以实现分页,但是打印的A4纸上下不能留边距,后来找到一个通过剪裁的方式可以实现左右上下留边距,并且能实现分页; 方法如下:基本思路是对获得的canvas进行切割,按A4纸大小并留边距后的比例进行剪裁,切出一页一页的内容来,再分别加到pdf中。 DEMO: 1 // 导出页面为...

记一次读取json配置文件,引发的堆栈溢出

读取配置文件的原代码 /// <summary> /// 获取配置 /// </summary> /// <param name="JsonFileName">json文件路径</param> /// <returns></re...