游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

用Python为接口测试自动生成用例

  基于属性的测试会产生大量的、随机的参数,特别适合为单元测试和接口测试生成测试用例
  尽管早在2006年haskell语言就有了QuickCheck来进行基于属性的测试,但是目前来看这依然是一个比较小众的领域,参考资料有限,本文如有不足,欢迎指正。1。基于表的测试
  在过去的测试实践中,执行测试时通常需要明确的内容(Value):条件输入结果
  这些内容可以通过判定树或者判断表来表示,然后测试的执行过程变成了这样
  给定输入X,我们期望Y
  可以称为基于表的测试
  在最初,这给了我们测试的方向,但是缺点也非常明显:
  你要足够多的XY才能可能覆盖到隐蔽的bug。
  这里请大家回答几个问题:
  你是否已经为每一个测试编写了足够多的用例,以至于你十分确定真的不需要再增加用例了这么多的用例,你编写的是否开心?是否高效?是否愿意继续坚持?
  如果以上问题的答案不是yes,那么基于属性的测试就是你需要掌握的东西!2。基于属性的测试
  基于属性的测试和基于表的测试,最大的区别可以这样描述:
  给定输入X值,我们期望Y值
  vs
  给定输入X类,我们期望Y类
  于是利用工具生成大量的X类数据,进行测试,并验证结果是否Y类。
  值得注意的是:关注输入的类型,而不是输入的值根据类型自动生成大量的、随机的输入值
  换言之,它在自动的生成测试用例,虽然输入值是随机的,但是值得类型符合规范要求3。如何进行基于属性的测试
  在不同的语言中有不同的工具来实现,比如:haskell中的QuickCheck、java中的quicktheoriespython中的hypothesis
  本文以python为例进行演示:
  假设有add函数,接收两个类型整数参数,并返回它们的相加结果defadd(a:int,b:int)int:pass
  首先写出一个简单的测试用例deftestadd():assert3add(1,2)
  正如前面所说,一个这样的用例,根本没信心覆盖全部的场景,例如:参数是0参数是负数参数值特别大其他。。。
  所以接下来怎么办?
  改为基于属性的测试importhypothesis。strategiesasstfromhypothesisimportgivengiven(st。integers(),st。integers())deftestadd(a,b):cadd(a,b)print(f{a},{b},{c})assertisinstance(c,int)assertcab
  执行结果a0,b0,c0a0,b0,c0a0,b0,c0a16926,b11053,c27979a0,b0,c0a0,b0,c0a21010,b2732672789497425072,c2732672789497404062a0,b0,c0a14554,b15956,c1402a15597,b0,c15597a15597,b13,c15610a15597,b0,c15597a15597,b15597,c31194a28965,b36,c28929a113,b36,c77a28929,b36,c28893a28929,b9356,c38285a9356,b9356,c18712a10278,b62,c10216a62,b62,c124a1625,b68244995710046113596363052355575247332,c68244995710046113596363052355575245707a1625,b13143,c11518a1625,b1625,c3250a1940,b31868,c33808a7,b1,c6a1,b0,c1a1,b0,c1a13,b7245,c7258a13,b13,c26a99,b18,c117a30172,b66,c30106a30172,b16940,c47112a16940,b16940,c33880a1233214851,b5152,c1233220003a5152,b5152,c10304a16,b29706,c29722a29706,b29706,c59412a29706,b116,c29590a29696,b90,c29786a29696,b29696,c59392a11446,b21185,c32631a21185,b21185,c42370a12,b16437,c16425a12,b16437,c16425a3202,b53,c3255a3202,b3202,c6404a98,b3,c95a82691970030325711417874227410289695610,b1316378701,c82691970030325711417874227411606074311a82691970030325711417874227410289695610,b82691970030325711417874227410289695610,c165383940060651422835748454820579391220a24100,b14385,c38485a24100,b14385,c38485a24100,b24100,c48200a12293,b106,c12187a12293,b27280,c39573a27280,b27280,c54560a18887,b5530,c24417a18887,b18887,c37774a4738,b122351151658095310625663643505383743930,c122351151658095310625663643505383748668a24601163521689169516616964879873921492,b565838202,c24601163521689169516616964879308083290a4738,b122351151658095310625663643281738736058,c122351151658095310625663643281738740796a96098295006598318424285019062007505,b25207226,c96098295006598318424285019036800279a96098295006598318424285019062007505,b1997122225172868107163535967078611096,c2093220520179466425587820986140618601a96098295006598318424285019062007505,b96098295006598318424285019062007505,c192196590013196636848570038124015010a36,b1190,c1154a36,b4,c40a36,b36,c72a2047897602,b4641,c2047892961a2047897602,b2047897602,c4095795204a1307873608,b11753,c1307861855a1307873608,b3308225400997338452,c3308225402305212060a1307873608,b770256249,c537617359a1307873608,b1307873608,c2615747216a4715910568460396013,b18622,c4715910568460414635a16754,b6053,c10701a6053,b6053,c12106a6053,b6053,c12106a22264,b44,c22220a22264,b22264,c44528a86,b86,c172a86,b86,c172a1794,b28170,c29964a1794,b28170,c29964a93,b482,c389a1,b482,c481a1,b1,c2
  由结果可知,工具根据参数是整数这一规范,自动生成、执行了大量的测试用例4。在接口测试中自动生成用例
  接口测试和函数的单元测试非常相似:输入数据返回数据
  此外接口文档作为前后端、甚至测试开发的对接窗口,对参数的要求约定的更加细致,
  以OpenAPI为例,每个参数可以有以下属性:type:数字还是字符串?format:密码还是电子邮箱?maxLength:长度不超过多少?required:是否必填?in:参数通过什么传递?其他。。。
  于是为接口生成符合要求的参数就变得可行了,举个例子:importloggingimportunittestimportrequestsfromapitoolsimportAPITestCaseclassUserCase(APITestCase):schemahttp:127。0。0。1:7600openapi。jsonifnamemain:unittest。main()
  这是以unittest为例进行封装的结果,只需要在TestCase中指定openapi的内容(或路径),
  启动测试框架时,会自动读取、解析接口文档,并生成测试用例
  下面是部分执行日志,可以看到对接口发送了随机参数,并获得返回值INFO2022041001:02:59,223:执行用例loginloginaccesstokenpostINFO2022041001:02:59,223:调用接口:loginloginaccesstokenpostINFO2022041001:02:59,223:发送请求:请求数据{userin:{password:bEYtwDZUxdBVThEFOqTz,email:KEfQnAtTNtwZOXRjoIjp}}INFO2022041001:02:59,578:接收响应:Response〔400〕INFO2022041001:02:59,578:调用完毕:loginloginaccesstokenpostINFO2022041001:02:59,578:执行用例testtokenlogintesttokenpostINFO2022041001:02:59,578:调用接口:testtokenlogintesttokenpostINFO2022041001:02:59,578:发送请求:请求数据{}INFO2022041001:03:00,035:接收响应:Response〔200〕INFO2022041001:03:00,035:调用完毕:testtokenlogintesttokenpostINFO2022041001:03:00,035:执行用例signuploginsignuppostINFO2022041001:03:00,035:调用接口:signuploginsignuppostINFO2022041001:03:00,035:发送请求:请求数据{userin:{password:GgzYcOwapTwnkkKVTraE,email:EJrXlCSNKKjdiVvAOnTM}}INFO2022041001:03:00,657:接收响应:Response〔200〕INFO2022041001:03:00,657:调用完毕:signuploginsignuppostINFO2022041001:03:00,657:执行用例todolisttodogetINFO2022041001:03:00,657:调用接口:todolisttodogetINFO2022041001:03:00,657:发送请求:请求数据{}INFO2022041001:03:01,233:接收响应:Response〔200〕INFO2022041001:03:01,233:调用完毕:todolisttodogetINFO2022041001:03:01,233:执行用例todoposttodopostINFO2022041001:03:01,233:调用接口:todoposttodopostINFO2022041001:03:01,233:发送请求:请求数据{todoin:{title:,isdone:False}}INFO2022041001:03:01,594:接收响应:Response〔200〕INFO2022041001:03:01,594:调用完毕:todoposttodopostINFO2022041001:03:01,594:执行用例tododeletealltododeleteINFO2022041001:03:01,594:执行用例todogettodotodoidgetINFO2022041001:03:01,594:调用接口:todogettodotodoidgetINFO2022041001:03:01,594:发送请求:请求数据{todoid:2451}INFO2022041001:03:02,026:接收响应:Response〔404〕INFO2022041001:03:02,026:调用完毕:todogettodotodoidgetINFO2022041001:03:02,026:执行用例todoputtodotodoidputINFO2022041001:03:02,026:调用接口:todoputtodotodoidputINFO2022041001:03:02,026:发送请求:请求数据{todoid:1519,todoin:{title:,isdone:False}}INFO2022041001:03:02,423:接收响应:Response〔404〕INFO2022041001:03:02,423:调用完毕:todoputtodotodoidputINFO2022041001:03:02,423:执行用例
  文章来自https:www。cnblogs。comdongfangtianyupapitestbypbt。html

荣耀Magic3Pro换壳华为Mate50Pro?Mate43C毒物独家报道:荣耀Magic3系列的发布,可以说让外界眼前一亮,神似华为的外观设计,让人不得不想到华为Mate40系列。有人说荣耀Magic3系列就是换壳的华为Mate50……市面上很多改底层数据iPhone,为何小白发现不了?最近几年二手机圈内非常流行改数据iPhone,因为这种iPhone可以给商家创造更高的利润。所以基本上是个二手机商家都会接触到改底层数据iPhone。这些改过底层数……一个塑料袋装当鞋盒了,飞织鞋面高弹中底,我的脚终于轻松了我44。5尺码的脚很不幸,终于在各种44尺码的鞋子折磨下得了甲沟炎。因为我能穿的鞋子尺码还是太难买了,大多都会选择45的。可是想买一双漂亮且有型的鞋子,众多品牌最大的都到44封……7月手机发布盘点新品数量同比下滑三成,华为回归,OPPO等缺文焦运杰校对李俊慧团队暑期既是电影市场的黄金期,也是下半年新品智能手机发布的起步期。因此,与6月相比,7月发布的新品手机数量明显多了一些。比如,已经结束的20……怎样帮助老人适应助听器及与人交流?我在今日头条有多条视频,您可以参考。正确的交流方式:1:交流双方要面对面交流,距离3米以内最佳2:说话者强度保持适中,吐字尽量清晰3:说话语言速度要保持……ZEGO即构科技与音速达引擎正式达成合作,创新推出音视频领域2021年8月,全球领先的音视频云服务商ZEGO即构科技与腾讯音乐娱乐集团(TME)旗下面向直播行业的正版音乐授权SaaS系统音速达引擎正式达成合作。依托于即构科技在音视……WiFi6E的2。4倍抗干扰能力更强今天,在联发科技术峰会上,联发科预告将会在CES2022上演示下一代WiFi网络技术WiFi7。联发科介绍,WiFi7速度是WiFi6E的2。4倍,带来更快的速度、更低的……十年后的手机华为p150:今年我们的手机续航能力将大幅提升,搭配200瓦快充,充电五分钟,能连续玩一个星期,以后充电再也不带充电宝了。小米22:哎呦老哥,这有什么可显摆的,200瓦快……为什么在浙江省Mac台式电脑的所有部件均享受3年保修期?因为浙江省出了一个很牛的工商局长,郑宇民局长,当年郑宇民局长跟央视主持人董倩关于国有企业、民营企业的论辩现在还依稀在耳。这样的政策不是地域歧视、而应该自豪很多人可能说浙江……地暖中央空调您了解吗?夏季即将来到我们的家用空调即将使用,空调可以打造制冷制热来满足我们日常的生活需求,那么在这个使用过程中夏季单单使用制冷就可以满足室内的温度保障,但是夏季过了天气慢慢降温到直至冬……Mac如何在Mac上安装多个版本openjdk并有效管理大家在日常项目开发过程中,由于公司多个Java项目使用的JDK版本不一致或其他原因,经常需要切换使用不同的JDK版本;在Windows或Linux上,常用的方法可能是通过环境变……4G手机有多久才会被淘汰?这个问题取决于5g的建设速度,和宣传力度,以目前的5g部署,和5g终端的情况可以看出,大致3年上下,4g手机将面临淘汰阶段,当然这个也不是一定的,最终还要看市场需求!综合目前的……
司想之争漩涡中的联想何去何从?从大司马发布第一个炮轰联想的视频以来,20多天过去了,全网从最初的炸锅到热议到看似趋淡,从最初大司马激情的7连轰,到各路看瓜的持续发酵,再到网络大V的纷纷发声,再到联想反击的女……那些曾经卖1万元的高端手机,现在只要500元大家知道人类三大本质这个梗吗?就是复读机、放鸽子和真香。不过,机哥觉得还可以加上一个不务正业。就像机哥的本业是搞机,偶尔也会给大家讲讲游戏、互联网文化什么的,……有哪些比较好的助听器,老人用的一边耳朵完全听不见了?不同品牌的助听器各有其特色,不能笼统地讲哪个品牌的助听器更好。一般来说,老年人需要根据听力损失的情况选择助听器,随着年龄的增长,内耳听毛细胞的衰退、老化,大脑听觉中枢分辨能力也……造型小巧科幻五菱全新微型电动车申报图曝光近日,我们在工信部第344批《道路机动车辆生产企业及产品公告》新产品公示中发现了上汽通用五菱旗下全新微型纯电动车的申报信息。从申报图来看,该款车型被命名为NanoEV,驱动电机……WEY摩卡预售17。98万起,搭载激光雷达的车型惊艳亮相4月19日,WEY品牌全球代言人、WEY摩卡首席智能体验官姚安娜,空降上海车展智动WEY来摩卡专属日,携手全球首款智能汽车人WEY摩卡,为现场粉丝呈现了车展史上自动驾驶走秀,书……美国要求即时通信软件帮助美特工监控中国用户环球时报一边抹黑中国政府收集数据,一边却强制性要求美国企业监控中国用户据美国《福布斯》杂志网站17日报道,一份刚刚解密的美国政府监控申请显示,在没有出示任何正当理由的情况……消息称第三代iPhoneSE明春上市有望成为最便宜5G手机财经网科技10月11日讯,据《科创板日报》消息,市场消息称,苹果将推出第三代iPhoneSE,新机将保留4。7寸LCD屏幕及TouchID,内部将升级至A15处理器,支持5G服……可以把你手机里最漂亮的肖像图分享出来吗?又来一个最,我高度认可自己不漂亮,让我怎么最呢?肖像,是指我自己的呢还是别人的呢?这些最问题,该改进了。无最,有相对,发点大自然肖像吧。〔来看我〕〔来看我〕〔来看我……助听器掉进水里还能用吗?什么样的助听器能防水?用干净的棉布将助听器表面擦拭干净取出电池,将里面的积水处理干净,经过简单的干燥处理后再重新检查助听器,尽快送到专业的验配中心。现在不少助听器,都有防水防尘的功能,比如IP68最……为什么国内的律师医生会计师地位和薪酬,远比不上欧美同行?这几个职业的还不够??那你怎么不说说我国的农民,工人,怎么比不上欧美同行呢??至少我知道会计师真的是被欧美吊打华西医院的收入你怕是不知道吧水平,职业道德都不同……为什么助听器佩戴的效果不太一样?1。听力的损失程度不同,2。佩戴时间不同(早发现及时佩戴效果好),3。年龄不同(老人自身原因听力损失重,佩戴不及时,听力损失时间长了,佩戴效果差),科学佩戴,早发现早佩戴效果好……新能源车市中,为何蔚小理们披荆斩棘,BBA们寸步难行?燃油时代,甲壳虫造就了大众品牌,高尔夫撑起了大众信仰,但在ID时代,却扑了街。刚刚过去的8月份应该是大众ID家族最好的单月表现,南北大众4款车型合计7023台,而论单款,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网