python+selenium+unittest单元测试框架

unittest简介

python自动化测试不得不提unittest,unittest原名为PyUnit是python自带的单元测试框架,类似于java的JUnit是有JUnit衍生而来。

unittest官网地址:https://docs.python.org/2/library/unittest.html

unittest整体结构

unittest库包括:TestCase、TestSuite、TestLoder、TextRunner、TextTestResult、TestFixture

TestCase是测试的最小单元模块。它检查对特定输入集合的特定响应。unittest提供给一个基类Testcase,可以使用这个类创建一个新测试testTestCase 。

TestSuite是测试集,测试集是测试用例、测试集或者二者的一个集合。它被用于把测试整合在一起,批量运行测试。

TestLoder是用来加载 TestCase到TestSuite中,其中有几个loadTestsFrom_()方法,就是从各个地方寻找TestCase,创建他们的实例,然后add到TestSuite中,再返回一个TestSuite实例

TextRunner是运行测试器, 测试运行器是协调测试执行并向用户提供结果的组件。运行器可以使用图形界面、文本界面、或返回特定值来指示执行测试的结果。

TextTestResult测试结果会保存到TextTestResult实例中,包括运行了多少用例,成功与失败多少等信息

TestFixture表示执行一个或者多个测试前的准备工作,确保每个测试之间的独立性。这可能涉及到创建临时或者代理数据库、目录、服务器情动进程等相关准备工作

实例

from selenium import webdriver
import unittest
import time

class login1Test(unittest.TestCase):
def setUp(self):
self.url=‘http://test1.xgs.xiaoshushidai.com
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.implicitly_wait(30)#隐性等待30秒
self.driver.get(self.url)

def login(self,username,passwrod,txtVerify):
self.driver.find_element_by_id(‘txtUserName’).send_keys(username)
self.driver.find_element_by_id(‘txtPassword’).send_keys(passwrod)
self.driver.find_element_by_id(‘txtVerify’).send_keys(txtVerify)
self.driver.find_element_by_id(‘btnSubmit’).click()

def tearDown(self):
self.driver.quit()

def test_loginsSuccess(self):
‘’‘登录成功’’’
self.login(“T_mac”,‘Aa654321’,‘123’)
tip=self.driver.find_element_by_class_name(‘info’).text
print(tip)
self.assertEqual(tip,‘您好,T_mac’’\n’‘测试删除’)

def test_nulluser(self):
‘’‘用户名为空’’’
self.login(’’,’’,’’)
self.driver.switch_to.alert().accept()
nullusererror=self.driver.switch_to.alert().text
self.assertEqual(nullusererror,‘请输入管理员账号’)

def test_nullpwd(self):
‘’‘密码为空’’’
self.login(‘13620180611’,’’,’’)
self.driver.switch_to.alert().accept()
nullpassword=self.driver.switch_to.alert().text
self.assertEqual(nullpassword,‘请输入管理员密码’)

def test_nulltxtVerify(self):
self.login(‘13620180611’,‘Aa654321’,’’)
self.driver.switch_to.alert().accept()
nulltxtVerify=self.driver.switch_to.alert().text
self.assertEqual(nulltxtVerify,‘请输入验证码’)

if name==‘main’:
unittest.main()

某网站的登录setUp是初始化函数表示运行每个用例时首先需要初始化用例为test_xxx。teraDown为清除数据

test_xxx命名的函数为测试用例unittest.main()识别类中的以test_xxx命名的函数(执行测试用例)
在这里插入图片描述
构造测试用例集

coding=utf-8

import unittest
from xiaoshutest.login import login1Test
import HTMLTestRunnerCN
#构造测试集
suite=unittest.TestSuite()
suite.addTest(login1Test(‘test_loginsSuccess’))
suite.addTest(login1Test(‘test_loginfail’))
suite.addTest(login1Test(‘test_loginusernamefail’))
suite.addTest(login1Test(‘test_nulluser’))
suite.addTest(login1Test(‘test_nullpwd’))
表示在suite中添加上面例子中测试类的login1Test中的测试用例

if name==‘main’:
#执行测试

runner=unittest.TestSuite()
with open('HTMLReport.html','wb+') as f:
    runner=HTMLTestRunnerCN.HTMLTestReportCN(stream=f,title='测试报告',description='测试报告详情',verbosity=2,tester='miss→麦')
    runner.run(suite)#运行suite把报告写成HTML格式
    f.close()

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python + Selenium + unittest 是一种常用的自动化测试框架,可以用于 web 应用程序的自动化测试。下面是一个简单的示例: 1. 安装 PythonSelenium: 首先需要安装 PythonSelenium,可以通过以下命令在终端中进行安装: ``` pip install selenium ``` 2. 创建一个测试文件(例如 `test.py`),引入必要的库: ```python from selenium import webdriver import unittest ``` 3. 在测试类中,初始化 webdriver,并编写测试用例: ```python class TestWeb(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.baidu.com") def test_search(self): driver = self.driver elem = driver.find_element_by_name("wd") elem.send_keys("selenium") elem.submit() self.assertIn("selenium", driver.title) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main() ``` 在上面的例子中,我们使用 Chrome 浏览器来打开百度网站,并在搜索框中输入关键字“selenium”,然后提交搜索。我们使用 `assertIn` 方法来验证页面标题是否包含关键字“selenium”。 4. 运行测试用例: 在终端中运行以下命令: ``` python test.py ``` 如果一切正常,你应该可以看到测试用例成功运行,并且输出类似于以下内容的结果: ``` Ran 1 test in 3.629s OK ``` 这只是一个简单的示例,实际的测试框架可能需要更多的配置和代码。你可以通过查看 Seleniumunittest 的文档来了解更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值