#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执行用例方法的更多相关文章

  1. Unittest组织用例的姿势

    本文我们将会讲解Python Unittest 里组织用例的5种姿势. 环境准备: python 3.0以上 python requests库 小编的环境: python 3.6.4 一.TestLo ...

  2. unittest---unittest多种加载用例方法

    在做自动化测试我们对执行用例很有要求,因为每条用例可能就和上一条数据有关系,那么我想要批量执行一些用例呢?这个怎么去操作呢?unittest自带的功能可以帮助到我们,我们可以通过不同的场景运用不同的执 ...

  3. python:unittest之discover()方法批量执行用例

    自动化测试过程中,自动化覆盖的功能点和对应测试用例之间的关系基本都是1 VS N,如果每次将测试用例一个个单独执行,不仅效率很低, 无法快速反馈测试结果,而且维护起来很麻烦.在python的单元测试框 ...

  4. Unittest加载执行用例的方法总结

    前言 说到测试框架,unittest是我最先接触的自动化测试框架之一了, 而且也是用的时间最长的, unittest框架有很多方法加载用例,让我们针对不同的项目,不同项目的大小及用例的多少自己选择加载 ...

  5. python+unittest 控制用例的执行顺序

    unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...

  6. python自动化-unittest批量执行用例(discover)

    前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

  7. unittest中diascover批量执行用例

    # case_dir='./'#当前脚本的路径 # discover=unittest.defaultTestLoader.discover(case_dir,pattern='unittest_fr ...

  8. unittest详解(四) 批量执行用例(discover)

    前面我们说了,对于不同文件用例,我们可以通过addTest()把用例加载到一个测试套件(TestSuite)来统一执行,对于少量的文件这样做没问题,但是如果有几十上百个用例文件,这样做就太浪费时间了. ...

  9. python学习笔记(28)-unittest单元测试-执行用例

    执行用例 #写一个测试类 import unittest import HTMLTestRunnerNew #写好的模块可以直接调用 #import HTMLTest #测试报告模板 from cla ...

随机推荐

  1. VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示

    VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示: “事件”引起变量值的变化,系统引擎自动根据变量值的变化刷新页面 在VUE Nod ...

  2. windows平台:查看端口占用情况,请杀死端口对应进程PID

    //查看 netstat -ano | findstr //杀死 taskkill /f /PID

  3. STL中区间最值max_element和min_element的用法

    前面的博客已经讲解了nth_element寻找区间第K大的用法,现在我们来说说这两个找区间最值的用法.两个函数都包含在algorithm库中. 一.函数原型 max_element template& ...

  4. Python--使用四种随机方法(Random)来产生随机价格

    import random # 卖橘子的计算器:写一段代码,提示用户输入橘子的价格,# 然后随机生成购买的斤数(5到10斤之间),最后计算出应该支付的金额! # 第一种# orange_price = ...

  5. Linux 笔记 - 第二十章 配置 Nginx 反向代理和负载均衡

    一.简介 由于 Nginx 的反向代理和负载均衡功能经常被提及,所以将这两个功能单独提出来进行讲解. Nginx 其实仅仅是作为 Nginx Proxy 反向代理使用的,因为这个反向代理功能表现的效果 ...

  6. Java中关于泛型集合类存储的总结

    集合类存储在任何编程语言中都是很重要的内容,只因有这样的存储数据结构才让我们可以在内存中轻易的操作数据,那么在Java中这些存储类集合结构都有哪些?内部实现是怎么样?有什么用途呢?下面分享一些我的总结 ...

  7. 百万it资源百度网盘链接分享

    自己大量时间整理的优质资源,容量达3000多G,有需要的朋友可以微我,资源截图:  面试资料: 书籍类: 视频类: 以上只是部分资源,想要资源的亲请加微信咨询. 欢迎加微信咨询,请备注资源: 独乐乐不 ...

  8. 转 Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数

    关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...

  9. 我的mongoDb之旅(二)

    题序:上一回,咱们简单的操作了一些增减改查的操作,这一次,再来进行一场奇妙之旅 一.案例讲解 (1).字段有值与没值时的单条数据 第一条数据title这个字段(mysql用久了,习惯这么叫了)是没有数 ...

  10. RedHat安装git报错 expected specifier-qualifier-list before ‘z_stream’

    年初开学的时候认识到了git,因为当时也没装虚拟机甚至是不知道虚拟机这个东西,所以就下载了Windows下的git.当时跟着廖雪峰Git教程 学了几个命令.安装了虚拟机,也学了linux的基本命令后, ...