当前位置: 首页 > news >正文

甘肃省建设厅官网站wordpress 改邮箱

甘肃省建设厅官网站,wordpress 改邮箱,长春网站建设手机版,广告设计需要学什么知识1、数据驱动介绍#xff1a; ddt.ddt#xff08;类装饰器#xff0c;申明当前类使用ddt框架#xff09;ddt.data#xff08;函数装饰器#xff0c;用于给测试用例传递数据#xff09;#xff0c;支持传python所有数据类型#xff1a;数字#xff08;int#xff0c;… 1、数据驱动介绍 ddt.ddt类装饰器申明当前类使用ddt框架ddt.data函数装饰器用于给测试用例传递数据支持传python所有数据类型数字intlongfloatcompix)字符串列表1ist元组tuple集合编写阅读数据文件的函数、data入口参数加*读取ddt.unpack函致装饰器将传输的数据包解包一般作用于元组tuple和列表list、字典参数名字和个数需要与字典的键保持一致数组、字符串不需要ddt.file_data函数装饰器可直接读取yaml/json文件2、数据驱动和关键驱动的区别 Data-Driven TestsDDT即数据驱动测试可以实现不同数据运行同一个测试用例。ddt本质其实就是装饰器一组数据一个场景。关键字驱动核心把业务逻相封装成关键字login只需要调用login。3、混合驱动模式关键字驱动数据驱动 4、在进行数据驱动测试实战需要在测试类上使用ddt.ddt装饰器在测试用例上使用ddt.data装饰器。 1单一参数导包——写一个参数列表、数字、字符串-----设置ddt.data装饰器写入参数名----方法中写入形参*data----调用参数内容 2多参数的数据驱动测试(一个测试参数中含多个元素)导包——设置ddt装饰器——设置unpack解包——写入参数——形参传递——调用 3txt文件传参 4json文件传参 5yaml文件传参 6xlsx文件传参 注意Python中传递可变参数*代表顺序阅读列表类型**代表顺序阅读对象(字典)类型点击阅读可变参数部分可了解相关机制 # 1、单一参数的数据驱动# 前置步骤 # 使用语句import unittest导入测试框架 # 使用语句from ddt import ddt, data导入单一参数的数据驱动需要的包# 示例会执行三次test参数分别为666,777,888 import ddt import unittest ddt.ddt # 设置ddt装饰器 class BasicTestCase(unittest.TestCase):ddt.data(666, 777, 888) # 设置data装饰器并将传入参数写进括号def test(self, *data): # test入口设置形参print(数据驱动的number:, data) # 程序会执行三次测试入口参数分别为666、777、888# 2、多参数的数据驱动 # 在单一参数包的基础上额外导入一个unpack的包from ddt import ddt, data, unpack # 步骤导包——设置ddt装饰器——设置unpack解包——写入参数——形参传递——调用 import ddt import unittestTestdata [{username: admin, password: 123456, excepted: {code: 200, msg: 登录成功}},{username: None, password: 1234567, excepted: {code: 400, msg: 用户名或密码不能为空}},{username: admin, password: None, excepted: {code: 400, msg: 用户名或密码不能为空}},{username: admin, password: 123456789, excepted: {code: 404, msg: 用户名或密码错误}}, ]ddt.ddt class BasicTestCase(unittest.TestCase):#方式一直接将列表放到dataddt.data([张三, 18], [李四, 19]) # 设置data装饰器并将同一组参数写进中括号[]ddt.unpack # 设置unpack装饰器顺序解包缺少解包则相当于name [张三, 18]def test(self, name, age):print(姓名:, name, 年龄:, age) # 程序会执行两次测试入口参数分别为[张三, 18],[李四, 19]#方式二写一个列表后使用*访问列表到dataddt.data(*Testdata)ddt.unpack # 设置unpack装饰器顺序解包def test_DataDriver(self, *Data):#print(DDT数据驱动实战演示, Data)res login.login_check(Testdata[username], Testdata[password])self.assertEqual(res, Testdata[excepted])#3、 txt文件接收参数 # 新建num文件txt格式# 1单一参数按行存储777888999# 2多参数txt文件# dict文件内容(参数列表)(按行存储)# 张三18# 李四19 # 编辑阅读数据文件的函数 # 记住读取文件一定要设置编码方式否则读取的汉字可能出现乱码 import ddt import unittest def read_num():lis [] # 以列表形式存储数据以便传入data区域with open(num.txt, r, encodingutf-8) as file: # 以只读r,编码方式为utf-8的方式,打开文件num,并命名为filefor line in file.readlines(): # 循环按行读取文件的每一行lis.append(line.strip(\n)) #单一参数每读完一行将此行数据加入列表元素记得元素要删除/n换行符#lis.append(line.strip(\n).split(,)) # 多参驱动删除换行符根据分割后列表为[张三18, 李四19, 王五20]return lis # 将列表返回,作为data接收的内容 ddt.ddt class BasicTestCase(unittest.TestCase):ddt.data(*read_num()) # 入口参数设定为read_num(),因为返回值是列表所以加*表示逐个读取列表元素#txt表格有多少个值设置多少个接收参数的形参def test(self, name,age):print(数据驱动的number:, name,age)# 4、JSON文件传参数据分离 # 多参数——json文件 # 步骤和单一参数类似仅需加入unpack装饰器以及多参数传参入口 # dict文件内容(参数列表)(非规范json文件格式): # 单一参数[666,777,888] # 多个参数[[张三, 18], [李四, 19], [王五, 20]] # 注意json文件格式字符串用双引号 import ddt import unittest import json def read_dict_json():return json.load(open(dict.json, r, encodingutf-8)) # 使用json包读取json文件并作为返回值返回 ddt.ddt class BasicTestCase(unittest.TestCase):ddt.data(*read_dict_json())ddt.unpack # 使用unpack装饰器解包def test(self, name, age): # 因为是非规范json格式所以形参名无限制下文会解释规范json格式print(姓名:, name, 年龄:, age)# 4、JSON文件传参数据分离 # json文件三种形式: # 1单一参数[666,777,888] # 2多个参数[[张三, 18], [李四, 19], [王五, 20]] # 3JSON格式读取每一组参数以对象形式存储: # [ # {name:张三, age:18}, # {name:李四, age:19}, # {name:王五, age:20} # ] # 单一参数时无需使用unpack多参数需要使用unpack解包注意json文件格式字符串用双引号 import ddt import unittest import json#方式1非正式json格式使用 def read_dict_json():return json.load(open(dict.json, r, encodingutf-8)) # 使用json包读取json文件并作为返回值返回#方式2JSON格式读取提取已读完后的json文件(字典形式)通过遍历获取元素并返回 def read_dict_json():lis []dic json.load(open(dict.json, r, encodingutf-8))# 此处加上遍历获取语句下文yaml格式有实例方法一样for item in dic:lis.append(item)return lisddt.ddt class BasicTestCase(unittest.TestCase):ddt.data(*read_dict_json())ddt.unpack # 使用unpack装饰器解包def test(self, name, age): # 因为是非规范json格式所以形参名无限制下文会解释规范json格式print(姓名:, name, 年龄:, age)#5、多参数yaml # 以对象形式存储yml数据(字典) # yaml格式文件内容 # - # name: 张三 # age: 18 # - # name: 李四 # age: 19 # - # name: 王五 # age: 20 # -号之后一定要打空格 # :号之后一定要打空格# 入口参数与数据参数key命名统一即可导入 import ddt import unittest import yaml ddt.ddt class BasicTestCase(unittest.TestCase):#方式1形参入口和数据参数key命名统一ddt.file_data(./data/dict.yml)def test(self, name, age): # 设置入口参数名字与数据参数命名相同即可print(姓名是, name, 年龄为, age)#方式2入口参数与数据参数命名不统一ddt.file_data(./data/dict.yml)def test(self, **cdata): # Python中可变参数传递的知识**按对象顺序执行print(姓名是, cdata[name], 年龄为, cdata[age]) # 通过对象访问语法即可调用 例子如下 方式一测试数据直接写成列表形式使用ddt.data(*Data)传值 ##2.12.2 DDT在自动化测试中的应用(传列表)import ddt import unittest# 给4条测试数据Testdata [{username: admin, password: 123456, excepted: {code: 200, msg: 登录成功}},{username: None, password: 1234567, excepted: {code: 400, msg: 用户名或密码不能为空}},{username: admin, password: None, excepted: {code: 400, msg: 用户名或密码不能为空}},{username: admin, password: 123456789, excepted: {code: 404, msg: 用户名或密码错误}},] ddt.ddt class TestModules(unittest.TestCase):def setUp(self):print(testcase beaning....)def tearDown(self):print(testcase ending.....)ddt.data(*Data)def test_DataDriver(self,Data):#print(DDT数据驱动实战演示,Testdata)res login.login_check(Testdata[username], Testdata[password])self.assertEqual(res, Testdata[excepted]) if __name__ __main__:unittest.main() 方式二数据写到方法形式readData()使用ddt.data(*readData())传值 import ddt import unittest# 给4条测试数据 def readData():Testdata [{username: admin, password: 123456, excepted: {code: 200, msg: 登录成功}},{username: None, password: 1234567, excepted: {code: 400, msg: 用户名或密码不能为空}},{username: admin, password: None, excepted: {code: 400, msg: 用户名或密码不能为空}},{username: admin, password: 123456789, excepted: {code: 404, msg: 用户名或密码错误}},]return TestDataddt.ddt class TestModules(unittest.TestCase):def setUp(self):print(testcase beaning....)def tearDown(self):print(testcase ending.....)ddt.data(*readData())def test_DataDriver(self,Data):#print(DDT数据驱动实战演示,Testdata)res login.login_check(Testdata[username], Testdata[password])self.assertEqual(res, Testdata[excepted]) if __name__ __main__:unittest.main()
http://www.hkea.cn/news/14442584/

相关文章:

  • 网站管理规范西安到北京火车票多少钱
  • 苏州学习网站建设怎么学习制作网站
  • 同个主体新增网站备案专门教做甜品的网站
  • 重庆公司建设网站hao123网址之家官网
  • 来宾城乡建设局网站网站个人微信收款方案
  • 哈尔滨模板建站公司推荐正规的网站制作在哪里
  • 网站建设要知道的标小智logo设计官网
  • wordpress自适应站点印花图案设计网站
  • 代理网站哪个好渝叶购零售客户电商网站
  • 怎么用网站卖自己做ftp备份wordpress
  • 建设科技网络网站的意义和目的asp.net做登录网站资源
  • 网站建设文字教程百姓网为什么不能创建地址
  • 网站后台补丁如何做网页制作模板在哪买
  • 河北网站制作公司哪家专业如何做企业推广
  • 织梦是什么网站网站关键词突然搜不到
  • 信阳工程建设一体化平台网站网络服务提供商有哪些公司
  • 站长 网站ip信阳制作网站ihanshi
  • 青秀区网站建设市场营销策略论文参考文献
  • 爬虫做网站相关教程个人网站备案需要多久
  • 美食网站html代码免备案域名免费申请
  • 网站搭建用什么软件网站有没有做网站地图怎么看
  • 银川专业做网站的公司免费qq空间网站
  • 北京最大网站建设公司排名哪有备案好的网站
  • 新乡正规网站建设哪家便宜化妆品网站建设描述
  • 阿里巴巴国际站下载卖家版后台控制网站关键词设置的详细代码
  • 网站优惠券怎么做的四川省住房和城乡建设厅官网平台
  • 网站建设及安全制度魔方网站
  • 网站安全查询系统通辽网站制作
  • 做网站咨询陕西网站制作公司哪家好
  • 展示型网站的特点做网站的教学视频