unittest

使用python测试框架完成自动化测试并生成报告-实例练习

匿名 (未验证) 提交于 2019-12-02 22:51:30
练习一: 使用unittest 完成自动化测试并使用HttpTestRunner生成报告 '''1、写个简单的计算器功能,大小写转换功能,随机生成字符串功能2、编写测试用例,不同的数据(你能想到的所有测试用例),并进行断言。除0的选择可以跳过skip,随机生成字符串功能可以断言是否包含你名字的缩写。3、使用unittest框架+HTMLTestRunner,最后生成html报告''' import unittestimport osimport timeimport loggingimport ddtfrom HTMLTestRunner import HTMLTestRunnerimport randomtestData1 = [{'a':5,'b':1,'x':'+','result':6}, {'a':5,'b':1,'x':'-','result':4}, {'a':5,'b':1,'x':'*','result':5}, {'a':5,'b':1,'x':'/','result':5} ]testData2 = [{'string':'asd','stringType':'upper','result':'ASD'}, {'string': 'ASD', 'stringType': 'lower','result':'asd'} ]#被测函数class test_demo

Python 单元测试

匿名 (未验证) 提交于 2019-12-02 22:51:30
使用 【测试套件】 批量执行【测试用例】的步骤: # 1 import unittest # 2.加载测试用例所在的模块 from Python_unittest import two_num_add as num_add from Python_unittesr import two_num_multi as num_multi # 3. 创建测试套件 one_suite = unittest.TestSuite() # 4.通过模块来批量加载测试用例 # 定义测试加载器对象 one_loader = unttest.TestLoader() one_suite.addTest(one_loader.loadTestsFromModule(num_multi))  # 执行顺序与套件添加的顺序有关 one_suite.addTest(one_loader.loadTestsFromModule(num_add)) # 5.执行用例 # 创建执行器对象 one_runner = unittest.TextTestRunner() one_runner.run(one_suite) 使用【discover】 import unittest # one_suite = unittest.defaultTestLoader.discover(".") # .代表当前py文件所在的路径

关于《Selenium3自动化测试实战--基于python语言》

匿名 (未验证) 提交于 2019-12-02 22:51:30
2016年1月,机缘巧合下我出版了《Selenium2自动化测试实战--基于python语言》这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用Selenium IDE去录制/回放脚本么? 没想到受到许多测试人员的欢迎,我会时常去看网上的书评。大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议。在此,表示感谢。 随着,我对Selenium自动化技术的理解,越来越发现《Selenium2自动化测试实战--基于python语言》书中有许多不足之处。 2017年的时候,我就有萌生了要重写一版的想法,当时能想到的改动的地方不多。只是一定未开始动笔。知道2018年下半年,我才开始重新写这本书。 接下来,我将简单的向你介绍以下新书的章节,以及我的改动。 第一章: 不讲什么是软件测试,以及测试的分类这些过于基础的东西了。快速的帮助你对自动化测试,以及Selenium、appium有一个认识。 第二章: 搭建环境。 第三章: python基础,修改了部分列子,以及我认识上的错误,比如,我把 list/列表 称为 数组 ,这其实源于我学C/Java语言,就把他们的叫法照搬了过来。显然,是不太合适的。随着对python的语言的使用,也有了更多的认识。如果你还不会python

Python : 标准库-测试模块

匿名 (未验证) 提交于 2019-12-02 22:51:30
开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试 doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。 测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中。 通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致: def average(values): “”"Computes the arithmetic mean of a list of numbers. >>> print(average([20, 30, 70])) 40.0 """ return sum(values) / len(values) import doctest doctest.testmod() # 自动验证嵌入测试 unittest模块不像 doctest模块那么容易使用,不过它可以在一个独立的文件里提供一个更全面的测试集: import unittest class TestStatisticalFunctions(unittest.TestCase): def test_average(self): self.assertEqual(average([20, 30, 70]), 40.0) self.assertEqual(round(average([1, 5, 7]), 1), 4.3)

unittest学习4-跳过用例执行

家住魔仙堡 提交于 2019-12-02 22:28:53
  unittest支持跳过单个测试方法,甚至整个测试用例,还支持将测试用例标记为“测试失败”   基本跳过如下: import unittestimport requests,sysclass MyTestCase(unittest.TestCase): @unittest.skip("do something skip!") def test_one(self): print("本用例执行跳过操作") def test_two(self): print("本用例不跳过,继续执行") @unittest.skipIf(requests.__version__<"3","the test skip") def test_three(self): print("本用例执行跳过操作") @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows") def test_four(self): passif __name__ == '__main__': unittest.main()  执行结果:   可以看出有三个测试用例执行了跳过操作,甚至可以和跳过测试方法一样,跳过测试类 @unittest.skip("showing class skipping") class MySkippedTestCase

unittest学习3-测试组件setup、teardown

会有一股神秘感。 提交于 2019-12-02 22:19:18
  unittest的测试用例执行时都可以设置setup、teardown,用来初始化测试开始和测试结束关闭,例如: import unittestclass MyTestCase(unittest.TestCase): def setUp(self): print("开始打开浏览器") def test_one(self): print("第一个测试用例的运行") def test_two(self): print("第二个测试用例的运行") def tearDown(self): print("开始关闭浏览器")if __name__ == '__main__': unittest.main()运行结果: 可以看出每个测试用例执行,都会调用一次setup和teardown,如果涉及用例数量增加,那么这种方法就不适合了。可以使用以下方法:    import unittestclass MyTestCase(unittest.TestCase): @classmethod def setUpClass(cls): print("开始打开浏览器") def test_one(cls): print("第一个测试用例的运行") def test_two(cls): print("第二个测试用例的运行") @classmethod def tearDownClass(cls):

013 python接口 数据驱动ddt

匿名 (未验证) 提交于 2019-12-02 22:11:45
''' 时间:2018/11/05 目录:   一: 安装ddt   二: 禅道登录 1 工程结构 2 unittest文件 3 实现功能文件 4 执行结果   三: 使用excel 1 安装xlrd 2 准备测试数据   四: 禅道登录 1 工程结构 2 unittest文件 3 实现功能文件 4 read_excel.py 5 执行结果 ''' 一: 安装ddt 1 : 运行输入"cmd",进入Dos窗口。 2 : 输入"pip install ddt"(安装ddt模块)。 2 : 可以看见已经安装了ddt(1.2.0)。 二: 禅道登录   1 工程结构   2 unittest文件 # coding:utf-8 import unittest import ddt import requests from DataDriver.chandao_login_api import * data = [{"user": "admin", "psw": "123456", "expect": True}, {"user": "admin2", "psw": "123456", "expect": False}, {"user": "admin", "psw": "123456", "expect": True}, {"user": "admin4", "psw": "123123"

unittest使用

空扰寡人 提交于 2019-12-02 22:05:47
unittest:单元测试框架主要包含四部分: 1、测试固件(test fixture): 定义:包含执行测试前的准备setUP()、测试执行完后的清扫工作tearDown() 注意: setUp()执行成功之后,不管test中有没有异常发生,tearDown()都会执行 测试固件在每个test都会执行 执行一次:使用setUpClass()和tearDownClass()可以的得到这样的效果,必须被装饰成classmethod 2、测试用例(test case): 定义:包含测试固件、具体测试代码函数,测试固件可以不要,但至少要有一个以小写test开头的函数 实现:使用装饰器@unittest.skip可以跳过某个测试用例不执行 3、测试套件(test suite): 定义: 很多测试用例的集合,通过测试套件来管理多个测试用例,会根据用例的加载顺序执行用例 实现: 1、第一种: 使用TestSuite()初始化一个Suite实例 unittest.TestSuite() 使用addTest()方法加载测试方法到测试套件中 addTest()如果要在传入别的包下的测试方法: 包名.类名(测试方法函数) 也可以使用addTests()方法 suite.addTests((lesson('test_case1'),lesson('test_case2'))) 2、第二种:

requests+unittest+ddt+xlrd+pymysql+BeautifulReport数据驱动

匿名 (未验证) 提交于 2019-12-02 22:02:20
# ddcapitestpython API接口自动化测试 # 一、数据驱动的思路 1、采用requests+unittest+ddt+xlrd+pymysql+BeautifulReport 2、requests是发起HTTP请求的第三方库 3、unittest是Python自带的单元测试工具 4、ddt是数据驱动的第三方库 5、xlrd是读取Excel的第三方库 6、pymysql是连接MySQL的第三方库 7、BeautifulReport是生成Html测试报告的第三方库 # 二、工程的目录结构 1、case是测试用例包 case/abc是预留给abc的包 case/def是预留给def的包 case/ghi是预留给ghi的包 2、log是日志目录 3、report是测试报告的目录 4、resource是Excel预置数据文件的目录 用于存放用例名称、接口路径、各个字段与预期结果 resource/abc/*文件名称.xlsx是abc的 resource/def/*文件名称.xlsx是def的 resource/ghi/*文件名称.xlsx是ghi的 5、setting是工程的配置文件包 6、tool是常用方法的封装类包 7、run_all.py是工程的执行文件 # 三、unittest的原理 1、class MyTestCase(unittest.TestCass

pyunitest技术文档:https://docs.python.org/2/library/unittest.html

匿名 (未验证) 提交于 2019-12-02 20:37:20
单元测试:unittest HTTP接口自动化测试:unittest+Requests Web UI 自动化测试:unittest+Selenium 移动自动化测试:unittest+Appium unittest是Python的标准的单元测试框架,能够很好的和自动化测试相结合,并且有独立的测试报告框架 unittest的主要构成部分 1)test fixture 用于初始化清理等操作。在selenium测试中,我们可以用来做webdriver的初始化。 2)testcase 测试用例,unittest的最小单元。 用于对指定输入的返回结果进行检测。 在unittest中提供了testcase基类,用来创建新的测试用例。 3)testsuit 测试套件,一系列测试用例或测试套件的组合 在unittest中由testsuit来实现 4)test runner 测试执行器,负责用例执行并生成测试报告。 在unittest中提供了命令行模式和Gui模式来执行 文章来源: pyunitest技术文档:https://docs.python.org/2/library/unittest.html