1. #coding=utf-8
  2.  
  3. from selenium import webdriver
  4.  
  5. from time import sleep
  6.  
  7. import unittest#导入unittest库
  8.  
  9. import HTMLTestRunner
  10.  
  11. #创建一个类,并且该类继承unittest.case类
  12.  
  13. class Test_baidu(unittest.TestCase):
  14.  
  15. #初始环境,每一个用例执行时都会先执行这里的代码
  16.  
  17. def setUp(self):
  18.  
  19. self.dr=webdriver.Chrome()#调用指定的浏览器并赋值给dr
  20.  
  21. self.dr.maximize_window()
  22.  
  23. self.dr.implicitly_wait(10)#智能等待作用和sleep一样
  24.  
  25. self.dr.get('https://www.baidu.com')
  26.  
  27. sleep(2)
  28.  
  29. #测试用例---执行搜索新方硕--测试用例的脚本
  30.  
  31. def test_case2(self):
  32.  
  33. self.dr.find_element_by_id('kw').send_keys(u'新方硕')
  34.  
  35. sleep(3)
  36.  
  37. #测试用例--执行搜索新东方
  38.  
  39. def test_case1(self):
  40.  
  41. self.dr.find_element_by_id('kw').send_keys(u'新东方')
  42.  
  43. sleep(3)
  44.  
  45. #还原环境(结束)---用例执行后关闭浏览器(扫尾工作)
  46.  
  47. def tearDown(self):
  48.  
  49. self.dr.close()

#方案一

  1. if __name__=="__main__":
  2.  
  3. unittest.main()
  4.  
  5. #unittest.main()他可以将一个单元测试的模块变为可以执行的脚本,所谓main()的方法使用了
  6.  
  7. # unittest中testloader类来搜索以test开头的测试用例,并自动执行
  8.  
  9. # main()执行顺序是以ascii用来执行顺序0-9,A-Z,a-z

#方案二:用例的执行顺序,根据你添加的顺序进行执行

  1. if __name__=='__main__':
  2.  
  3. suite=unittest.TestSuite()#构造一个容器用来存放我们的测试用例
  4.  
  5. suite.addTest(Test_baidu('test_case2'))#添加类中的测试用例
  6.  
  7. suite.addTest(Test_baidu('test_case1'))#添加类中的测试用例
  8.  
  9. suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
  10.  
  11. run=unittest.TextTestRunner()
  12.  
  13. run.run(suite)#调用对象中的run的方法执行测试套件:suite
  14.  
  15. #或者如下
  16.  
  17. if __name__=='__main__':
  18.  
  19. suite=unittest.TestSuite()
  20.  
  21. suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
  22.  
  23. run=unittest.TextTestRunner()
  24.  
  25. run.run(suite)
  26.  
  27. #还或者如下
  28.  
  29. if __name__=='__main__':
  30.  
  31. suite=unittest.TestSuite()
  32.  
  33. testcates=[Test_baidu('test_case2'),Test_baidu('test_case1')]
  34.  
  35. suite.addTests(testcases)
  36.  
  37. run=unittest.TextTestRunner()
  38.  
  39. run.run(suite)

unittest.TestSuite()执行用例问题如下:

步入正轨解决方案出炉,在右键点击run时,发现run后面为unittest.in filename,以前执行文件时都是Run fliename,也就是说整个文件都是按照unittest模式来执行的

看到了 两个执行的不一致,两个办法如下:

1,点击控制台Run来运行

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

此时右键执行就会发现不在unittest模式下了哦

#方案三执行顺序与方案一一样

  1. if __name__=='__main__':
  2.  
  3. # 批量执行用例
  4.  
  5. case_dir=r'D:\work_doc\pycharm\python_selenium'#当前路径在c:/python文件的xx的目录中有一个ll.py文件
  6.  
  7. discover=unittest.defaultTestLoader.discover(case_dir,pattern='unittest_frame.py'
  8.  
  9. ,top_level_dir=None)
  10.  
  11. run=unittest.TextTestRunner()
  12.  
  13. run.run(discover)
  14.  
  15. # 生成测试报告
  16.  
  17. suit = unittest.TestSuite()
  18.  
  19. suit.addTest(unittest.makeSuite(Test_baidu))
  20.  
  21. file1 = open('d:\\test3.html','wb')
  22.  
  23. runner = HTMLTestRunner.HTMLTestRunner(file1,title=u'用例报告',description=u'用例描述')
  24.  
  25. runner.run(suit)
  26.  
  27. 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. ELKBR部署检测项目日志

    ELK filebeat:具有日志收集功能,相比logstash,+filebeat更轻量,占用资源更少,适合客户端使用. redis消息队列选型:Redis 服务器通常都是用作 NoSQL 数据库, ...

  2. 如何在Centos服务器上搭建起Oracle10、VNC、以及FTP

    一.重装和分区 1.配置所需磁盘阵列(Raid): 2.正确分区: 3.Centos安装:过于简单,请自行bd. 二.连网 系统安装完成之后,我们需为其分配IP和DNS: "编辑连接&quo ...

  3. bluetooth(蓝牙) AVRCP协议概念及代码流程解析

    一 概念 AVRCP全称:The Audio/Video Remote Control Profile (AVRCP) 翻译成中文就是:音视频远程控制协议.概念:AVRCP定义了蓝牙设备之间的音视频传 ...

  4. centos 7 ifconfig无法找到命令的方法

    场景:新安装centos   没有安装. centos7.2的mini版没有安装这个东东,所以我们就直接安装就好了,在终端里面输入: yum -y install net-tools

  5. Python中使用python -m pip install --upgrade pip升级pip时老是不成功

    场景 在使用python -m pip install --upgrade pip进行pip升级时,每次到最后就是报一大堆红色,最终升级不成功. 实现 使用默认的镜像源时间过长就会没响应,使用豆瓣的镜 ...

  6. Hive bucket表

    Hive 桶 对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是 针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余 ...

  7. ios打包时候提示三方文件库错误,整理下解决的思路

    这一短时间一直在打包APP上线,今天突然打包的时候碰到的头文件找不到 一开始我以为是路径的问题,检查了targets---Build settings----search Paths----heade ...

  8. Swift从入门到精通第十四篇 - 错误处理 初识

    错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 在 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...

  9. 在Debian上用FVWM做自己的桌面

    用FVWM做自己的桌面 Table of Contents 1. 前言 2. 学习步骤 3. 准备 3.1. 软件包 3.2. 字体 3.3. 图片 3.4. 参考资料 4. 环境 5. 布局 6. ...

  10. let与var的区别

    1.let作用域局限于当前代码块 文章中//后面的均为打印结果 代码1: { var str1 = "小花"; let str2 = "小明"; console ...