unittest执行用例方法
#coding=utf-8
from selenium import webdriver
from time import sleep
import unittest#导入unittest库
import HTMLTestRunner
#创建一个类,并且该类继承unittest.case类
class Test_baidu(unittest.TestCase):
#初始环境,每一个用例执行时都会先执行这里的代码
def setUp(self):
self.dr=webdriver.Chrome()#调用指定的浏览器并赋值给dr
self.dr.maximize_window()
self.dr.implicitly_wait(10)#智能等待作用和sleep一样
self.dr.get('https://www.baidu.com')
sleep(2)
#测试用例---执行搜索新方硕--测试用例的脚本
def test_case2(self):
self.dr.find_element_by_id('kw').send_keys(u'新方硕')
sleep(3)
#测试用例--执行搜索新东方
def test_case1(self):
self.dr.find_element_by_id('kw').send_keys(u'新东方')
sleep(3)
#还原环境(结束)---用例执行后关闭浏览器(扫尾工作)
def tearDown(self):
self.dr.close()
#方案一
if __name__=="__main__":
unittest.main()
#unittest.main()他可以将一个单元测试的模块变为可以执行的脚本,所谓main()的方法使用了
# unittest中testloader类来搜索以test开头的测试用例,并自动执行
# main()执行顺序是以ascii用来执行顺序0-9,A-Z,a-z
#方案二:用例的执行顺序,根据你添加的顺序进行执行
if __name__=='__main__':
suite=unittest.TestSuite()#构造一个容器用来存放我们的测试用例
suite.addTest(Test_baidu('test_case2'))#添加类中的测试用例
suite.addTest(Test_baidu('test_case1'))#添加类中的测试用例
suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
run=unittest.TextTestRunner()
run.run(suite)#调用对象中的run的方法执行测试套件:suite
#或者如下
if __name__=='__main__':
suite=unittest.TestSuite()
suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
run=unittest.TextTestRunner()
run.run(suite)
#还或者如下
if __name__=='__main__':
suite=unittest.TestSuite()
testcates=[Test_baidu('test_case2'),Test_baidu('test_case1')]
suite.addTests(testcases)
run=unittest.TextTestRunner()
run.run(suite)
unittest.TestSuite()执行用例问题如下:
步入正轨解决方案出炉,在右键点击run时,发现run后面为unittest.in filename,以前执行文件时都是Run fliename,也就是说整个文件都是按照unittest模式来执行的


看到了 两个执行的不一致,两个办法如下:
1,点击控制台Run来运行

2,点击 控制台的右上角见图


此时右键执行就会发现不在unittest模式下了哦
#方案三执行顺序与方案一一样
if __name__=='__main__':
# 批量执行用例
case_dir=r'D:\work_doc\pycharm\python_selenium'#当前路径在c:/python文件的xx的目录中有一个ll.py文件
discover=unittest.defaultTestLoader.discover(case_dir,pattern='unittest_frame.py'
,top_level_dir=None)
run=unittest.TextTestRunner()
run.run(discover)
# 生成测试报告
suit = unittest.TestSuite()
suit.addTest(unittest.makeSuite(Test_baidu))
file1 = open('d:\\test3.html','wb')
runner = HTMLTestRunner.HTMLTestRunner(file1,title=u'用例报告',description=u'用例描述')
runner.run(suit)
file1.close()
unittest执行用例方法的更多相关文章
- Unittest组织用例的姿势
本文我们将会讲解Python Unittest 里组织用例的5种姿势. 环境准备: python 3.0以上 python requests库 小编的环境: python 3.6.4 一.TestLo ...
- unittest---unittest多种加载用例方法
在做自动化测试我们对执行用例很有要求,因为每条用例可能就和上一条数据有关系,那么我想要批量执行一些用例呢?这个怎么去操作呢?unittest自带的功能可以帮助到我们,我们可以通过不同的场景运用不同的执 ...
- python:unittest之discover()方法批量执行用例
自动化测试过程中,自动化覆盖的功能点和对应测试用例之间的关系基本都是1 VS N,如果每次将测试用例一个个单独执行,不仅效率很低, 无法快速反馈测试结果,而且维护起来很麻烦.在python的单元测试框 ...
- Unittest加载执行用例的方法总结
前言 说到测试框架,unittest是我最先接触的自动化测试框架之一了, 而且也是用的时间最长的, unittest框架有很多方法加载用例,让我们针对不同的项目,不同项目的大小及用例的多少自己选择加载 ...
- python+unittest 控制用例的执行顺序
unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...
- python自动化-unittest批量执行用例(discover)
前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...
- unittest中diascover批量执行用例
# case_dir='./'#当前脚本的路径 # discover=unittest.defaultTestLoader.discover(case_dir,pattern='unittest_fr ...
- unittest详解(四) 批量执行用例(discover)
前面我们说了,对于不同文件用例,我们可以通过addTest()把用例加载到一个测试套件(TestSuite)来统一执行,对于少量的文件这样做没问题,但是如果有几十上百个用例文件,这样做就太浪费时间了. ...
- python学习笔记(28)-unittest单元测试-执行用例
执行用例 #写一个测试类 import unittest import HTMLTestRunnerNew #写好的模块可以直接调用 #import HTMLTest #测试报告模板 from cla ...
随机推荐
- 关于格林尼治时间(GMT)和DateTime相互转换的分享
普及一下什么是格林尼治时间? 世界时UT即格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式.以地球自转为基础的时间计量系统.地球自转的角度可用地方子午线相对于地球上的 ...
- TestNG(十一) 超时测试
package com.course.testng.suite; import org.testng.annotations.Test; public class TimeOutTest { @Tes ...
- web-文件上传漏洞总结
思维导图: 一,js验证绕过 1.我们直接删除代码中onsubmit事件中关于文件上传时验证上传文件的相关代码即可. 或者可以不加载所有js,还可以将html源码copy一份到本地,然后对相应代码进行 ...
- 一起看期待已久的.NET Core 3.0新的单文件部署特性,记在昨日VS2019更新后
VS2019又又又迎来一次新的更新,这次的重点在.NET Core, 妥妥的更新好,默默地反选2.2,一切都在意料之中. 这次我们来看VS2019的新特性单文件部署: https://www.talk ...
- jenkins之插件下载方法
jenkins插件下载方法有两种,在线下载和离线下载方式 在线下载 就是在安装好了jenkins之后,进入jenkins的插件管理页面,搜索想要的插件,点击安装即可 例如:安装git插件 问题:有时候 ...
- 深度汉化GCompris-qt,免费的幼儿识字软件
1 需求 因为有个小孩上幼儿园了,想开始教他一些汉语拼音和基本的汉字,但通过一书本和卡片又有些枯燥乏味,于上就上网搜索一些辅助认字的应用,还购买了悟空识字APP,在用的过程中发现他设置了很严格的关卡, ...
- Spring 梳理-传递模型数据到视图
传递model,返回string,不指定返回key package com.jt; import com.myOrg.DeptUserDomain; @Controller @RequestMappi ...
- js数组的增删改查
array 数组的增删改: push 从数组后面推入一个元素或多个元素 var arr = [1,2,3]; // 返回:修改后数组的长度 arr.push(4,5,6); pop 删除数组最后一 ...
- ubuntu13 eclipse菜单栏失效解决
使用ubuntu13安装完eclipse和myeclipse后发现菜单栏单击时不显示下拉框只能通过快捷键显示. 百度了一下,找到以下解决办法. 打开终端运行下面的命令,打开eclipse后可正常显示菜 ...
- Redis Cluster 原理相关说明
背景 之前写的 Redis Cluster部署.管理和测试 和 Redis 5.0 redis-cli --cluster help说明 已经比较详细的介绍了如何安装和维护Cluster.但关于Clu ...