1.unittest单元测试框架文件结构

unittest是python单元测试框架之一,unittest测试框架的主要文件结构:

File

  >report

  >all_case.py

>test_case

      >__init__.py

      >test_case1.....

      >public

          >__init__.py

          >login.py

          >loginout.py

test_case文件夹主要存放测试用例,且测试用例命名以test_开头

public文件夹是test_case文件夹的子文件夹,主要存放公共模块,例如登录退出模块

report文件夹主要存放在测试用例执行完成后生成的测试报告

all_case脚本文件是主要的执行脚本,该脚本集合所有测试用例,执行所有的测试用例

2.unittest框架的最简单结构

在selenium + python自动化测试unittest框架学习(一)selenium原理及应用这篇中说道可以将录制的浏览器行为导出成指定的编程语言,如果我们先是通过Selenium ide录制后导出的python脚本,那么可以发现每一个脚本的都会有这样一个简单的结构,先忽略那些判断元素是否存在的函数。其基本的结构如下所示:

setUp()

tearDown()

test_case1()

unittest.main()

setUp:初始化函数,每一个测试用例执行之前都会执行一遍

tearDown:测试用例执行完成后的浏览器退出等清理操作

test_case1():编写的测试用例脚本

unittest.main():自动执行方法名为test_开头的方法

3.unittest测试框架优化结构2

单单一个脚本不可能包含所有的测试用例,所以不同的测试用例可以写成不同的测试用例脚本放置在test_case文件夹中,那么执行测试用例的时候我们需要一个测试套件TestSuite来加载所有的测试用例脚本,添加测试用例的方法addTest(),并且使用TextTestRunner运行测试脚本。

  • 先构造测试集

    • 实例化测试套件

      • suite=unittest.TestSuite()
    • 将测试用例加载到测试套件中。
      • suite.addTest(Test('test_case2'))
      • suite.addTest(Test('test_case1'))
  • 执行测试用例
    • 实例化TextTestRunner类

      • runner=unittest.TextTestRunner()
    • 使用run()方法运行测试套件(即运行测试套件中的所有用例)
      • runner.run(suite)

该结构的缺点是每一个测试用例的增加都要添加一条addTest()方法,这就增加自动化脚本上的繁琐,所以我们可以想办法自动加载符合条件的测试用例

4.unittest测试框架优化结构3

该结构简化了一些步骤,即不用先创建测试套件,然后通过添加测试用例的方式,将测试用例逐条加载,TestLoader下的discover方法可以递归查询其指定路径下的子目录下符合条件的测试用例加载。

test_dir = './'

discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')

执行测试用例

实例化TextTestRunner类

runner=unittest.TextTestRunner()

使用run()方法运行测试套件(即运行测试套件中的所有用例)

runner.run(discover)

5.unittest执行文件all_case.py代码结构如下:

# coding=utf-8
import unittest
import HTMLTestRunner
import time
from test_case.public import logindef createsuit():#创建测试用例集testunit = unittest.TestSuite()#判断是否为测试用例,自动加载测试用例到测试套件中cslist = "D:\\fcj\\study\\seleniumtest\\test_case"#discover方法定义discover = unittest.defaultTestLoader.discover(#测试用例放置的文件夹名cslist,pattern = 'test_*.py',top_level_dir = None)#discover方法筛选出来的用例,循环添加到测试套件中for test_suite in discover:testunit.addTests(test_suite)print(testunit)return testunit
alltestnames = createsuit()if __name__ == "__main__":now = time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time()))#定义报告存放路径filename = 'D:\\fcj\\study\\seleniumtest\\report\\'+now+'result.html'fp = open(filename,'wb')#定义测试报告runner = HTMLTestRunner.HTMLTestRunner(stream = fp,title = u'A项目后台测试报告',description = u'用例执行情况:')#执行测试runner.run(alltestnames)fp.close()

转载于:https://www.cnblogs.com/evablogs/p/7196823.html

selenium + python自动化测试unittest框架学习(二)相关推荐

  1. selenium + python自动化测试unittest框架学习(五)webdriver的二次封装

    因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<se ...

  2. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  3. selenium原理python_selenium + python自动化测试unittest框架学习(一)selenium原理及应用...

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  4. 自动化测试——unittest框架

    自动化测试--unittest框架 文章目录 自动化测试--unittest框架 unittest 一.TestCase(测试用例) 二.TestSuite(测试套件)和TestRunner(测试执行 ...

  5. selenium +python自动化测试发QQ空间说说

    selenium +python自动化测试发QQ空间说说 import time from selenium import webdriver# 1. 打开网站,窗口最大化 driver=webdri ...

  6. selenium + python自动化测试环境搭建

    elenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: 免费,也不用再为破解QTP而大伤脑筋 小巧,对于不同的语言它只是一个包 ...

  7. PyTorch框架学习二十——模型微调(Finetune)

    PyTorch框架学习二十--模型微调(Finetune) 一.Transfer Learning:迁移学习 二.Model Finetune:模型的迁移学习 三.看个例子:用ResNet18预训练模 ...

  8. PyTorch框架学习二——基本数据结构(张量)

    PyTorch框架学习二--基本数据结构(张量) 一.什么是张量? 二.Tensor与Variable(PyTorch中) 1.Variable 2.Tensor 三.Tensor的创建 1.直接创建 ...

  9. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

最新文章

  1. pandas 0.22导入错误
  2. 导出excel/xml
  3. ×××保障再上层楼:侠诺×××备援实例
  4. linux开发之uboot移植 -- uboot简介
  5. html 折叠焦点图切换,自适应全屏焦点图切换CSS3特效
  6. 哈夫曼树及哈夫曼编码例题
  7. 编写一个程序,完成字符大小写的转换。
  8. 东南大学计算机视觉博士招生,基于计算机视觉的手势识别及人机交互技术的应用研究...
  9. 微信小程序父组件向子组件传递数据
  10. 洋哥线下见面会,小姐姐都问了什么?
  11. MySQL实现7种 SQL JOINS
  12. https 被redirect成了http
  13. python:实现由伪栈表示的队列算法(附完整源码)
  14. 光线通过三棱镜模拟matlab仿真
  15. python保存dat文件_用Python解析.DAT文件
  16. 有意义的人生与学习——跟随大师感悟人生
  17. 国家发布电子病历共享文档规范
  18. 卸载“趋势科技防毒墙网络版客户机”方法之一
  19. 广告狂人第一至七季/全集Mad Men迅雷下载
  20. EMI传导干扰的8大绝招

热门文章

  1. 彻底理解JAVA动态代理
  2. Java中的异常 Exception
  3. 不曾有练字基础的成年人,应该如何科学地练字会更有成效?
  4. 使用 Sublime + PlantUML 高效地画图
  5. 数据结构之Treap
  6. Hadoop家族学习路线图
  7. 新的一年,请以这样的标准完善自我
  8. mRemoteNG 远程连接工具(开源)
  9. 让你的网页达到最好的视觉效果
  10. 思考--为何早晨型人更容易成功