unittest 测试用例实现
unittest框架结构

test_case:
测试套件,每一个.py文件代表一个测试用例,测试用例以test开头,否则框架读取不到测试用例
__init__.py是做什么的?
public:存放测试用例所调用的公共模块
data:存放用于参数化的数据
report:存放测试报告
all_tests.py:执行test_case中的测试用例
qq邮箱登录测试用例:
1 #encoding:utf-8
2 from selenium import webdriver
3 import time
4
5 import unittest
6 from selenium.common.exceptions import NoSuchElementException
7
8 class Login(unittest.TestCase):
9 def setUp(self):
10 self.driver = webdriver.Chrome()
11 self.driver.get("https://mail.qq.com/")
12 self.driver.maximize_window()
13 def test_login(self):
14 #先跳转到frame框架
15 self.driver.switch_to.frame('login_frame')
16 time.sleep(3)
17 #self.driver.find_element_by_css_selector("#qqLoginCard").click()
18 self.driver.find_element_by_id('u').send_keys('******@qq.com')
19 self.driver.find_element_by_id("p").send_keys('******')
20 self.driver.find_element_by_id("login_button").click()
21 time.sleep(10)
22
23 #try:
24 # text = self.driver.find_element_by_id('useralias').text
25 # print(text)
26 # return True
27 #except:
28 # return False
29
30 def tearDown(self):
31 self.driver.quit()
32
33
34 if __name__ == '__main__':
35 unittest.main
all_test.py
1 #encoding:utf-8
2 import unittest
3 import HTMLTestRunner
4 import os,time
5 listaa = 'D:\\unittest\\test_case' #测试用例所在目录
6 def creatsuite1():
7 testunit = unittest.TestSuite()
8 discover = unittest.defaultTestLoader.discover( #用discover读取测试用例
9 listaa,
10 pattern='*.py',
11 top_level_dir=None
12 )
13 for test_suite in discover:
14 for test_case in test_suite:
15 testunit.addTests(test_case)
16 print(testunit)
17 return testunit
18
19 alltestnames = creatsuite1()
20
21 now = time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime())#获取当前时间并设置时间格式
22 filename = "D:\\unittest\\test_case\\report"+now + "result.html" #将测试报告存到本地
23
24 fp = open(filename,'wb')
25
26 runner = HTMLTestRunner.HTMLTestRunner( #设置测试报告格式
27 stream=fp,
28 title= u'qq登录测试报告',
29 description=u'用例执行情况'
30 )
31
32 runner.run(alltestnames)#运行测试用例并生成测试报告
unittest 测试用例实现的更多相关文章
- unittest测试用例的执行顺序
unittest的测试顺序为:有几个测试用例,测试固件就会执行多少次. 例如:只有一个测试用例时: setup--testcase1--teardown import unittest class F ...
- appium+python+unittest 测试用例的几种加载执行方式
利用python进行测试时,测试用例的加载方式有2种: 一种是通过unittest.main()来启动所需测试的测试模块: 一种是添加到testsuite集合中再加载所有的被测试对象,而testsu ...
- Django 测试开发5 unittest测试用例
Django测试用例 Django默认Python的标准库unittest编写测试用例.Django的单元测试类django.test.TestCase 从unittest.TestCase继承而来. ...
- PyCharm上unittest 测试用例两种执行方式
每次讲到unittest测试框架的时候,经常有同学在群里反映,为啥我的运行不是按照我往suite里添加的用例顺序执行的,为什么别人的能跑出来报告,我的就不行... 当然,首先确认代码是OK的,如果代码 ...
- python -- unittest测试用例函数无法传参的处理方法(ddt)
1.超继承 重写测试用例类的init方法,如下所示. import requests import unittest class XiaoheiCases(unittest.TestCase): de ...
- 一文带你定制unittest测试用例的名称
在之前的文章中,我在之前的文章中提到过,这里呢,考虑后,感觉之前的写法不够优雅,于是乎呢,我自己抽空去研究了下,主要是新写方法,这样呢,以后的要使用的时候,可以直接去使用,而不是每次换个环境就要修改环 ...
- 【Python + Selenium】之unittest测试用例满足条件,进行跳过测试Skip
直接上代码: __author__ = 'zc' import unittest class demoSkipTest(unittest.TestCase): a = 70 b = 50 print( ...
- unittest框架官方翻译:中文版
指数 模块 | 下一个 | 上一个 | Python » 英语 法国 日本 朝鲜的 开发(3.8) 3.7.3rc1 3.6 3.5 2.7 文档 » Python标准库 » 开发工具 » | ...
- python接口自动化测试 - unittest框架基本使用
unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/uni ...
随机推荐
- Solution -「多校联训」取石子游戏
\(\mathcal{Description}\) Link. 有 \(n\) 堆石子,第 \(i\) 堆有 \(x_i\) 个,Alice 每次只能从这堆中拿走 \(a_i\) 个石子,Bo ...
- Solution -「CF 555E」Case of Computer Network
\(\mathcal{Description}\) Link. 给定 \(n\) 个点 \(m\) 条边的无向图,判断是否有给每条边定向的方案,使得 \(q\) 组有序点对 \((s,t)\) ...
- MyBatis中执行器Executor框架
与JDK提供的Executor框架类似,MyBatis也提供了一套Executor框架,具体如下图: 其为Mybatis提供与数据库交互的功能,是一个典型的装饰器模式的应用--对JDBC功能的封装,同 ...
- .net core 和 WPF 开发升讯威在线客服系统:调用有道翻译接口实现实时自动翻译的方法
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- 关于Windows安装两个不同版本的MySQL详细步骤
关于Windows安装两个不同版本的MySQL详细步骤 安装两个不同版本的数据库原因 由于大部分教程所使用的数据库为5.7版本,而我之前安装的是8.0版本. 在一些特殊情况下,低版本数据库不能动,高版 ...
- python中time模块的调用及使用
1 import time #通常import语句会写到代码的开头 2 3 print('------------------------') 4 print('------------------- ...
- 【基础篇】js对本地文件增删改查--改
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- CVE-2017-0213漏洞复现
CVE-2017-0213漏洞形成的原因 类型混淆的漏洞通常可以通过内存损坏的方式来进行利用.然而漏洞发现者在利用时,并未采用内存损坏的方式来进行漏洞利用.按照漏洞发现者的说法,内存损坏的利用方式需要 ...
- AWVS漏洞扫描教程之扫描方式
实验目的 掌握AWVS的基本用法. 实验原理 Acunetix Web Vulnerability Scanner是一个网站及服务器漏洞扫描软件. 实验内容 对Web站点进行安全测试. 实验环境描述 ...
- 用Stegsolve工具解图片隐写的问题