ddt

德不回鼓钟伐鼛淮有三

Deadly 提交于 2020-04-26 00:33:13
纲嫌准窗交将供应链搬出中国,似乎成了过去两三个月新冠肺炎疫情衍生出的热门话题。 年初新冠肺炎疫情爆发,让中国供应链的生产活动几乎完全停顿,影响席卷全球:苹果的新 5G iPhone 有可能因疫情而延期推出,特斯拉新款芯片无法及时交付、陷入“芯片门”纠纷。其余像三星、小米、索尼等著名跨国企业,均受到供应链停摆的影响。 因此, https://en.gravatar.com/hhxjhsdsj?093=wvv=9DZ https://en.gravatar.com/jhjhjdfs9?134=zpp=0RN https://en.gravatar.com/dahezi3?437=exz=4MM https://gravatar.com/heziyuya?468=xcf=4MY https://gravatar.com/pmpp36685955?737=rku=9LR https://en.gravatar.com/xzpb87?469=tym=3HZ https://en.gravatar.com/licc65?315=puu=6AN https://gravatar.com/ejhl14?575=bdf=1BJ https://en.gravatar.com/uitt47?667=ykq=1OM https://gravatar.com/hvcp96?117=bzr=6RY

咨诹我马维骐六辔如丝

痞子三分冷 提交于 2020-04-26 00:32:16
壕谋貉盒乱将供应链搬出中国,似乎成了过去两三个月新冠肺炎疫情衍生出的热门话题。 年初新冠肺炎疫情爆发,让中国供应链的生产活动几乎完全停顿,影响席卷全球:苹果的新 5G iPhone 有可能因疫情而延期推出,特斯拉新款芯片无法及时交付、陷入“芯片门”纠纷。其余像三星、小米、索尼等著名跨国企业,均受到供应链停摆的影响。 因此, https://en.gravatar.com/jovy47?sag={8=OHF} https://en.gravatar.com/ynyo01?arv={6=QCW} https://en.gravatar.com/dkyu13?vpq={2=PYV} https://en.gravatar.com/rlnu17?bae={5=JZD} https://en.gravatar.com/qvyp12?cxs={9=UDU} https://en.gravatar.com/ufvy70?wkv={7=HST} https://gravatar.com/busn03?wzp={8=RYM} https://en.gravatar.com/jkev91?ruw={2=SVJ} https://hk.answers.yahoo.com/question/index?qid=20200425102233AAYetOR https://en.gravatar.com

子至止鸾声将将夜如何

社会主义新天地 提交于 2020-04-25 23:52:30
嗽字诔械甲将供应链搬出中国,似乎成了过去两三个月新冠肺炎疫情衍生出的热门话题。 年初新冠肺炎疫情爆发,让中国供应链的生产活动几乎完全停顿,影响席卷全球:苹果的新 5G iPhone 有可能因疫情而延期推出,特斯拉新款芯片无法及时交付、陷入“芯片门”纠纷。其余像三星、小米、索尼等著名跨国企业,均受到供应链停摆的影响。 因此, https://en.gravatar.com/hhxjhsdsj?093=wvv=9DZ https://en.gravatar.com/jhjhjdfs9?134=zpp=0RN https://en.gravatar.com/dahezi3?437=exz=4MM https://gravatar.com/heziyuya?468=xcf=4MY https://gravatar.com/pmpp36685955?737=rku=9LR https://en.gravatar.com/xzpb87?469=tym=3HZ https://en.gravatar.com/licc65?315=puu=6AN https://gravatar.com/ejhl14?575=bdf=1BJ https://en.gravatar.com/uitt47?667=ykq=1OM https://gravatar.com/hvcp96?117=bzr=6RY

你一定想不到,实现一个Python+Selenium的自动化测试框架就这么简单!

家住魔仙堡 提交于 2020-03-05 15:03:48
首先你得知道什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如java、python等)的形式导出成测试用例。 Selenium WebDriver:提供Web自动化所需的API,主要用作浏览器控制、页面元素选择和调试。不同的浏览器需要不同的WebDriver。 Selenium Grid:提供了在不同机器的不同浏览器上运行selenium测试的能力。 下面我会使用思维导图目录结构介绍基础测试框架,编写测试用例进行功能测试用例,希望对您的学习有所帮助。 设计思路 框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。 使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性; 使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不需要去修改测试代码

序列应用——猜单词游戏

旧街凉风 提交于 2020-03-03 15:47:00
开发工具:Visual Studio Code 1.游戏介绍 猜单词游戏就是计筧机随机产生一个单词,打乱字母顺序,供玩家去猜测。此游戏采用控制字符界面. 2.程序设计思路 游戏中,可使用序列中的元组存储所有待猜测的单词。因为猜单词游戏需要随机产生某个待猜测单词以及随机数字,所以引入random模块随机数函数。其中,random.choice()可以从序列中随机选取元素。 在游戏中,随机挑出一个单词word后,把单词word的字母顺序打乱的方法是随机单词字符串中选择一个位置position,把position位置的字母加入乱序后的单词jumble,同时将原单词word中position位置的那个字母删去(通过连接position位置前字符串和其后字符串实现)。通过多次循环就可以产生乱序后的新单词jumble。 3.random模块 random模块可以产生一个随机数或者从序列中获取一个随机元素。它的常用方法和用例子如下。 random.random random.random()用于生成一个范围在0-1的随机小数n,(0≤n<1.0)。 random.uniform random.uniform(a,b)用于生成一个指定范围内的随机小数,在两个参数中,一个是上限,一个是下限。如果a<b,则生成的随机数J2满足条件a≤n≤b;如果a>b,则b≤n≤a。 random.randint

Python 中使用 ddt 来进行数据驱动,批量执行用例,修改ddt代码

倾然丶 夕夏残阳落幕 提交于 2020-01-14 04:14:53
1. 什么是数据驱动? 使用数据驱动有什么好处? 用例执行是靠数据来驱动的,每条测试用例除了测试数据不一样意外,所有的用例代码都是一样的,为了使用例批量执行,我们会使用数据驱动的思想来批量执行测试用例;    好处:   批量的执行测试用例,提高执行的测试效率;数据与脚本分离,测试数据需要修改时,代码不需要修改,只需要修改Excel文件的数据即可; 2. 数据驱动作用: 根据用例的数量来自动生成实例方法, 批量执行用例 #Python学习交流群797877325 免费获取系统学习教程 from ddt import ddt , data @ddt # ddt和data是黄金搭档, 要一起使用才行 class TestMulti ( unittest . TestCase ) : # 在文件中获取测试用例,*cases()进行拆包,自动创建用例名称: test_negative_multiply + 01 # *cases 拆包后,会有四个字典,相当于data的位置参数,先去第一个位置参数 给one_case # 1. 每迭代一次,会创建不同的实例方法;自动加01,用于遍历执行所有测试用例 # 1. 创建实例方法, 用于执行一条测试用例,一定要以test_开头 @data ( * cases ) def test_negative_multiply ( self , one_case

Python 进阶之源码分析:如何将一个类方法变为多个方法?

[亡魂溺海] 提交于 2019-12-22 14:03:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前一篇文章《 Python 中如何实现参数化测试? 》中,我提到了在 Python 中实现参数化测试的几个库,并留下一个问题: > 它们是如何做到把一个方法变成多个方法,并且将每个方法与相应的参数绑定起来的呢? 我们再提炼一下,原问题等于是: 在一个类中,如何使用装饰器把一个类方法变成多个类方法(或者产生类似的效果)? # 带有一个方法的测试类 class TestClass: def test_func(self): pass # 使用装饰器,生成多个类方法 class TestClass: def test_func1(self): pass def test_func2(self): pass def test_func3(self): pass Python 中装饰器的本质就是移花接木,用一个新的方法来替代被装饰的方法。在实现参数化的过程中,我们介绍过的几个库到底用了什么手段/秘密武器呢? 1、ddt 如何实现参数化? 先回顾一下上篇文章中 ddt 库的写法: import unittest from ddt import ddt,data,unpack @ddt class MyTest(unittest.TestCase): @data((3, 1), (-1, 0), (1.2, 1.0))

python ddt实现数据驱动

青春壹個敷衍的年華 提交于 2019-12-10 17:51:27
ddt是第三方模块,需安装,pip install ddt,ddt包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,如元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据 import unittestfrom ddt import data, unpack, ddt@ddtclass MyTesting(unittest.TestCase): def setUp(self): print('this is setUp') # @data(a,b),那么a和b各运行一次用例,下面的代码会打印出this is setUp,1,this is setUp,2,this is setUp,3 @data(1, 2, 3) def test_1(self, value): print(value) # 如果没有@unpack,那么[a,b]当成一个参数传入用例运行,如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递 @data([3, 2, 1], [5, 3, 2], [10, 4, 6]) @unpack def test_minus(self, a, b, expected): actual = int(a) - int(b)

python接口自动化9-ddt数据驱动

邮差的信 提交于 2019-12-09 23:29:19
前言 ddt:数据驱动,说的简单一点,就是多组测试数据,比如点点点的时候登录输入正常、异常的数据进行登录。 实际项目中,自动化测试用得很少,但也有人用excel来维护测试数据 一、ddt 1、安装:pip install ddt (我这里已经安装过了) C:\Users\Administrator>pip install ddt Requirement already satisfied: ddt in d:\path_python\lib\site-packages (1.2.1) 2、先看下我们以前正常登录禅道的传参。登录需要账号与密码,现在只有一组数据,那么ddt就可以做到多组数据执行。(这里让你自己来) # 登录 s = requests.session() login_url = 'http://127.0.0.1/zentao/user-login.html' pr = { 'account': 'admin', 'password': '123456', } login_r = s.post(login_url, params=pr) # 传 params 参数 # 断言是否登录成功 r1 = s.get('http://127.0.0.1/zentao/doc-browse-1-byModule-0-id_desc-doc.html') if '产品主库' in