# unittest 单元测试框架(必须使用类去做)import unittestclass TestFuncation(unittest.TestCase):@classmethoddef setUpClass(cls):print(‘\n************整个类最开始执行************‘)@classmethoddef tearDownClass(cls):print(‘************整个类最后执行************‘)def setUp(self):print(‘\n 在每个测试用例开始前执行‘)def tearDown(self):print(‘在每个测试用例结束时执行‘)def test_dict(self):print(‘...
本文章会讲述以下几个内容:1、什么是PO设计模式(Page Object Model)
2、为什么要使用PO设计模式
3、使用PO设计模式要点
4、PO设计模式实例1、什么是PO设计模式 (Page Object Model)一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减少代码重复、更易读、减少维护成本。
一般PO设计模式有三层
第一层:对Selenium 进行二次封装,定义一个所有页面都继承的 BasePage ,封装 Selenium 基本方法 例如:元素定位,元素等...
设计思路: 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享。 框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。 1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性; 2、使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生...
一、Unittest单元测试框架,可用于自动化测试用力组织,执行,输出结果二、Unittest构成Test CaseTest SuiteTest FixtureTest Runner
(图片来源于网络)Test Case一个测试用例是一个独立的测试单元。它检查输入特定的数据时的响应。 unittest 提供一个基类: TestCase ,用于新建测试用例。一个完整的用例需要遵循3A原则Arrange: 初始化测试对象或者准备测试数据Act : 调用被测方法Assert: 断言(预期结果与实际结果的比较)test su...
测试功能:博客园首页网站分类的一级菜单链接和二级菜单链接的点击。遇到的问题: 1.循环点击二级菜单时,点击了一个一级菜单下的第一个二级菜单后,页面会刷新,再定位同一个一级菜单次下的第二个二级菜单时,会报错:找不到第二个二级菜单,这时需要对一级菜单重新定位赋值; 2.当一级菜单下的二级菜单太多时,在页面的不可见区域,这时会报错:element not interactable,这时需要滑动滚动条。 # coding=utf-8from seleni...
常用的断言方法如下:assertFalse:为假时返回True;self.assertFalse(表达式,“表达式为true时打印的message”)assertTrue:为真时返回True;self.assertTrue(表达式,“表达式为false时打印的message”) asserEqual:相等返回True;self.assertEqual(表达式1,表达式2,“表达式1不等于表达式2时打印的message”)assertNotEqual:不相等返回True;self.assertNotEqual(表达式1,表达式2,“表达式1等于表达式2时打印的message”...
前言:Requests简介Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 有点落后了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。总之,大家建议大家用Requests吧。Requests的官方文档:http://cn.python-requests.org/zh_CN/latest/通过下面方法安...
记录一下Unittest的测试执行相关的点 一、测试用例执行的几种方式1、通过unittest.main()来执行测试用例的方式:if__name__ == "__main__":unittest.main() 2、通过testsuit来执行测试用例的方式:if__name__==‘__main__‘:case = [‘TestCase‘]suite = unittest.TestSuite(map(TestClassName,case))unittest.TextTestRunner.run(suite) 3、通过testLoader方式:if__name__ == "__main__":suite1 = unittest.TestLoader().loadTe...
po模型的handle层,主要用于给定位的元素发送value,register_handle.pyfrom page.register_page import RegisterPage
from log.user_log import UserLogclass RegisterHandle(object):def __init__(self,driver):self.register_p = RegisterPage(driver)def send_user_email(self,email):self.log = UserLog()self.logger = self.log.get_log()self.register_p.get_email_element().send_keys(email)self.logger.info(‘输入的邮箱...
Codeimport unittest
class SimplisticTest(unittest.TestCase):def test(self):a = ‘a‘b = ‘a‘self.assertEqual(a, b)Outputmacname@MacdeMacBook-Pro cherry % python3 -m unittest test.py
.
----------------------------------------------------------------------
Ran 1 test in0.000sOK
macname@MacdeMacBook-Pro cherry % Codeimport unittestclass OutcomesTest(unittest.TestCase):def testPass(self...
本篇转自博客:上海-悠悠原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/前言前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间。于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。 一、装饰器1.用setUp与setUpClass区别setup():每个测试cas...
Test Case、Test Suite、Test Runner、Test FixtureTest Case:单个测试用例Test Suite:测试组合。可以把多个测试用例集合在一起执行。Test Runner:通过Test Runner的run()方法来执行test suite/test case,可以使用图形界面、文本界面,或返回一个特殊的值来表示测试执行的结果。Test Fixture:测试用例环境的搭建和销毁。如果测试用例中需要访问数据库,可以在setUp中建立数据库连接,在tearDown中清除数据库产生的数据,并断开...
1.对话框,下拉框(1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话框的div,然后再对对话框的元素进行定位。(2)另外的弹出消息提示框有三种类型:alert,comfirm,prompt,三种类型的区别为;alert消息提示框仅提供“确定”按钮,用于警告等提示,comfirm提示框提供“是”和“否”的选择,prompt则是提示输入对话框,包...
import unittestclass UTest(unittest.TestCase):def test_upper(self):self.assertEqual(‘foo‘.upper(), ‘FOO‘)def test_isupper(self):self.assertTrue(‘FOO‘.isupper())self.assertFalse(‘Foo‘.isupper())if__name__ == ‘__main__‘:
unittest.main() 注:0. unnitest 是 python 自带的库,不需要额外的安装即可用 1. 测试用例 (testcase) 都是由 unittest.TestCase 类创建的,对应的 test 开头的 测试方法, 如上例的...
单元测试unittest 1、单元测试用例 1import unittest2def add(a,b):3return a + b4 result = add(1,1)5 6class AddTest(unittest.TestCase): #继承unittest.TestCase 7def test_normal(self):8 result = add(1,1)9 self.assertEqual(2,result) #assertEqual是判断两个值是否相等1011def test_error(self):
12 result = add(1,1)
13 self.assertEqual(1,result,‘结果计算错误‘)
1415 unittest.m...