unittest

Python测试框架之unittest和pytest

梦想与她 提交于 2020-01-20 21:02:16
目前搜狗商城接口测试框架用的是unittest+HTMLTestRunner,case数有1097条,目前运行一次自动化测试,时长约为30分钟,期望控制在10分钟或者更短的时间内。近期打算重新优化框架,着重解决运行效率低的问题。最近调研了一下另一种主流测试框架Pytest,Pytest是一个非常成熟的全功能的Python测试框架,本文主要对比了Unittest和Pytest这两种较为流行的Python测试框架。 一、Unittest Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。 示例: 执行结果: 注:unittest有一个关联模块unittest2,但unittest2仅适用于Python 2.4-2.6。这是由于从Python 2.7开始,unittest增加一些新的特性。为了在老的版本中支持这些特性,所以提供了unittest2这个库。但对于Python 2.7及之后的版本,unittest是唯一的。本次示例中使用的为python2.7。 二、Pytest

unittest显示用例名称

喜你入骨 提交于 2020-01-20 19:16:40
class apitestcase(unittest.TestCase): def setup(self): pass def tearDown(self): pass def my_doc_func(func, num, param): return param[0][0] @parameterized.expand(case, doc_func=my_doc_func) def test_case(self, case): if case == u"用例描述" or case == u"注释": pass else: ( 2 ) HTMLTestRunner 文件的 _generate_report_test 方法中的 desc = doc and ('%s: %s' % (name, doc)) or name 可以改为 desc=doc and doc or name 这样报告中的用例名称那一行就只会显示用例名,不会显示为用例 ID :用例名了 来源: https://www.cnblogs.com/dmtz/p/12219105.html

带unittest的脚本分析.py

瘦欲@ 提交于 2020-01-19 00:43:39
import unittestfrom selenium import webdriverclass BaiduTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://www.baidu.com" """ 接下来定义空的verificationErrors数组,脚本运行时的错误信息将被记录到这个数组中。 """ self.verificationErrors = [] """ 定义accept_next alert变量,表示是否继续接受下一个警告,初始状态为True。 """ self.accept_next_alert = True """ setUp用于设置初始化工作,在执行每一个测试用例前先被执行,它与tearDown方法相呼应, 后者在每一个测试用例执行后被执行。这里的初始化工作定义了浏览器启动和基础URL地址。 """ def test_baidu(self): driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_id("kw").clear() driver.find

拆分测试用例

孤街浪徒 提交于 2020-01-19 00:18:44
calculator.py class Count: def __init__(self,a,b): self.a = int(a) self.b = int(b) #计算加法 def add(self): return self.a + self.b #计算减法 def sub(self): return self.a - self.b runtest.py import unittest# 加载测试文件import testaddimport testsub# 构造测试集suite = unittest.TestSuite()suite.addTest(testadd.TestAdd("test_add"))suite.addTest(testadd.TestAdd("test_add2"))suite.addTest(testsub.TestSub("test_sub"))suite.addTest(testsub.TestSub("test_sub2"))if __name__ == '__main__': # 执行测试 runner = unittest.TextTestRunner() runner.run(suite)"""这样的拆分带来了好处,可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类

Python - Unittest小结

别等时光非礼了梦想. 提交于 2020-01-18 13:56:23
一、Unittest 单元测试框架,可用于自动化测试用力组织,执行,输出结果 二、Unittest构成 Test Case Test Suite Test Fixture Test Runner (图片来源于网络) Test Case 一个测试用例是一个独立的测试单元。它检查输入特定的数据时的响应。 unittest 提供一个基类: TestCase ,用于新建测试用例。 一个完整的用例需要遵循3A原则 Arrange: 初始化测试对象或者准备测试数据 Act : 调用被测方法 Assert: 断言(预期结果与实际结果的比较) test suite 用于组织测试用例,测试用例的集合 戳我获取 —> 组织用例的姿势 Test Fixture 测试脚手架 test fixture 表示为了开展一项或多项测试所需要进行的准备工作,以及所有相关的清理操作。 定义单个或者多个测试所需的环境准备(setUp),以及环境清理(tearDown)。 例:连接数据库,或者创建Selenium WebDriver driver实例 test runner 测试运行器 是一个用于执行和输出测试结果的组件。这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果 demo.py import unittest class TestDemo(unittest.TestCase): #

使用 HTMLTestRunner.py

扶醉桌前 提交于 2020-01-17 20:44:49
HTMLTestRunner.py python 2版本 下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html 使用时,先建立一个”PyDev Package“,将下载下来的 HTMLTestRunner.py 文件拷贝在该目录下。 例子:testcase5_dynamic.py import unittest from dev.widget import Widget class WidgetTestCase(unittest.TestCase): def setUp(self): self.widget=Widget() def tearDown(self): self.widget.dispose() self.widget=None def testSize(self): self.assertEqual(self.widget.getSize(), (40,40), "Wrong") def testResize(self): self.widget.resize(100, 100) self.assertEqual(self.widget.getSize(), (100,100), "Wrong") html_report.py: #coding:utf-8 from lib import

python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法:

我是研究僧i 提交于 2020-01-17 20:07:54
全文转载至:http://www.cnblogs.com/testyao/p/5658200.html python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'的解决方法: 1.原因是官网的是python2语法写的,看官手动把官网的HTMLTestRunner.py改成python3的语法: 参考: http://bbs.chinaunix.net/thread-4154743-1-1.html 下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html 修改后下载地址: http://pan.baidu.com/s/1dEZQ0pz (懒人直接下载吧) 2.修改汇总: 第94行,将import StringIO修改成import io 第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO() 第642行,将if not rmap.has_key(cls):修改成if not cls in rmap: 第766行,将uo = o.decode('latin-1')修改成uo = e 第775行,将ue = e.decode('latin-1'

操作web页面的滚动条

家住魔仙堡 提交于 2020-01-17 13:17:29
(1)滑动页面的滚动条到页面的最下面 (2)滑动页面的滚动条到页面的某个元素 (3)滑动页面的滚公条向下移动某个数量的像素 #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : zwy24zwy@163.com """ #操作web页面的滚动条 from selenium import webdriver import unittest import traceback import time class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_scroll(self): url = 'http://111.160.124.227:9194/' try: self.driver.get(url) self.driver.execute_script('window.scrollTo(100,document.body.scrollHeight);') #使用JavaScript的scrollTo函数和document.body.scrollHeight参数 #将页面的滚动条滑动到页面的最下方 time.sleep(2) self.driver

最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

我与影子孤独终老i 提交于 2020-01-16 05:54:31
最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件 今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程。以后各位只要着重如何编写测试用例即可,其他模板可以套用的,希望帮助到大家。 目录 一、编写测试用例 二、执行测试用例,查找最新测试用例,自动发送测试报告 三、定时执行测试用例 3.1方案一:Windows任务计划 3.2方案二:Jenkins持续集成 四、成果验收 环境准备: 操作系统:Windows7 集成开发环境:eclipse+pydev 一、编写测试用例 点击返回目录 可以直接使用Python自带的单元测试框架unittest来编写自动化测试用例,利用其组织测试用例,断言预期结果,以及批量执行测试用例等功能,可以很好的进行Web自动化测试的开发。 可以直接查看我另外一篇博文总结: unittest单元测试框架总结 里边详细总结了 使用unittest框架编写测试用例思路(模板) 和 使用unittest框架编写测试用例实例 。 目录结构如下组织: 如上图:test_case目录下有两个测试用例,其中test_baidu.py实例代码在博文“unittest单元测试框架总结”中有贴出。其他实例,可以参考模板实现

Android自动化教程实战:Appium+Python (对应的链接地址:https://www.jianshu.com/p/8b06f76be7e6)

浪尽此生 提交于 2020-01-16 01:24:04
本文不在叙述Appium环境安装。如有需要请参考: http://www.jianshu.com/p/7a6fa7ab662b 1. 创建项目目录 mkdir project{conf,common,logs,doc,tests} #conf:存放appium-android配置设置,以及App页面元素配置文件; #logs:存放日志以及截图; #doc:存放文档; #common:存放工具类的脚本; #tests:存放测试脚本; 整个目录如下: Paste_Image.png 2. Appium Android配置文件 Appium Android Settings 设置如下: Paste_Image.png Python脚本配置如下: #!/usr/bin/env python # -*- coding:utf-8 -*- import os import sys import time import re from appium import webdriver sys.path.append("..") #用于解决多个手机连接问题 from common.mobile import get_serialno #Read mobile deviceId device_id = get_serialno() #Read mobile os Version os_version