范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

接口自动化测试工具seldom分享

  在编写接口用例的过程中,针对一个接口,往往只是参数不同,那么参数化就非常有必要了。
  seldom 中参数化的用法非常灵活,这里仅介绍 @file_data()   的N种玩法。二维列表
  当参数比较简单时可以试试下面的方式。 参数化数据 {  "add_guest":  [    ["参数错误", "", "", 10021, "parameter error"],    ["查询为空", "tom", "13711001100", 10022, "event id null"],  ] } 测试用例 import seldom from seldom import file_data   class AddGuestTest(seldom.TestCase):      @file_data("add_guest.json", key="add_guest")     def test_case(self, _, real_name, phone, status, msg):         payload = {"realname": real_name, "phone": phone}         self.post("/api/add_guest/", data=payload)         self.assertStatusCode(200)         self.assertPath("status", status)         self.assertPath("message", msg)   if __name__ == "__main__":     seldom.main(base_url="http://127.0.0.1:8000", debug=True) 列表嵌套字典
  当参数很多时,不便于阅读,可以通过字典的方式定义。 参数化数据 {   "add_guest": [     {       "name": "参数错误",       "real_name": "",       "phone": "",       "status": 10021,       "msg": "parameter error"     },     {       "name": "查询为空",       "real_name": "tom",       "phone": "13711001100",       "status": 10022,       "msg": "event id null"     },   ] } 测试用例 import seldom from seldom import file_data   class AddGuestTest(seldom.TestCase):      @file_data("add_guest.json", key="add_guest")     def test_case(self, _, real_name, phone, status, msg):         payload = {"realname": real_name, "phone": phone}         self.post("/api/add_guest/", data=payload)         self.assertStatusCode(200)         self.assertPath("status", status)         self.assertPath("message", msg)   if __name__ == "__main__":     seldom.main(base_url="http://127.0.0.1:8000", debug=True) 复杂的数据结构
  我们可以将接口的入参、出参进一步拆分。 参数化数据 {   "add_guest": [     {       "name": "参数错误",       "req": {         "real_name": "",         "phone": ""       },       "resp": {          "status": 10021,           "msg": "parameter error"       }     },     {       "name": "查询为空",       "req": {         "real_name": "tom",         "phone": "13711001100"       },       "resp": {         "status": 10022,         "msg": "event id null"       }     }   ] } 测试用例 import seldom from seldom import file_data   class AddGuestTest(seldom.TestCase):      @file_data("add_guest.json", key="add_guest")     def test_case(self, _, req, resp):         payload = {"realname": req["real_name"], "phone": req["phone"]}         self.post("/api/add_guest/", data=payload)         self.assertStatusCode(200)         self.assertPath("status", resp["status"])         self.assertPath("message", resp["msg"])   if __name__ == "__main__":     seldom.main(base_url="http://127.0.0.1:8000", debug=True) 通过json编写用例
  虽然不推荐用文件写用例,你想写也是可以的。 测试用例文件 {   "cases": [     {       "name": "参数错误",       "method": "post",       "url": "/api/add_guest/",       "req": {         "eid": "",         "real_name": "",         "phone": ""       },       "resp": {          "status": 10021,           "msg": "parameter error"       }     },     {       "name": "查询为空",       "method": "post",       "url": "/api/add_guest/",       "req": {         "eid": 901,         "real_name": "tom",         "phone": "13711001100"       },       "resp": {         "status": 10022,         "msg": "event id null"       }     }   ] } 解析测试用例  import seldom from seldom import file_data   class SampleCaseTest(seldom.TestCase):      @file_data("test_case.json", key="cases")     def test_case(self, _, method, url, req, resp):         if method == "post":             payload = {"eid": req["eid"], "realname": req["real_name"], "phone": req["phone"]}             self.post(url, data=payload)             self.assertStatusCode(200)             self.assertPath("status", resp["status"])             self.assertPath("message", resp["msg"])         elif method == "get":             pass   if __name__ == "__main__":     seldom.main(base_url="http://127.0.0.1:8000", debug=True)
  最后的这种写法不是seldom推荐的,假如要测试的接口足够简单,设计一个测试方法来处理简单的接口也未尝不可。当然,往往实际项目中的用例并不足够简单。回到代码的方式编写才能足够兼具灵活性和易用性。

在万米高空向世界提供5G信号这家美国太阳能无人机公司玩得大地面上能提供5G信号的地方都不多,可是美国太阳能无人机公司HAPSMobile却想一步登天,在超过2万米高空向地面发射5G信号。据美国电子工程类杂志IEEESpectrum报道,最苹果15寸MacBookPro降价300美元性能稳定技术靠谱这款MacBook配备了2。6GHz第8代Corei7处理器16GB内存512GBSSD以及4GB内存的RadeonPro560X专用显卡。300美元的降价幅度并不大,也不是最便宜蚂蚁森林2019春种正式开启断货王胡杨今天10点准时上线3月12日是一年一度的植树节,今日消息,支付宝蚂蚁森林宣布正式开启2019春种,号称春天,是种出来的,除了蚂蚁森林2019春种启动,断货已久的胡杨将在今天上午1000准时上线。根据docker具名挂载和匿名挂载这就是一个很小的实验rootlocalhostdockervolumelsDRIVERVOLUMENAME具名挂载rootlocalhostdockerrundPnamenginx这一次,马斯克麻烦大了本文原创,请勿抄袭和搬运,违者必究马斯克是特斯拉的创始人,但其实马斯克还有另外一个身份,是美国太空探索技术SpaceX公司的创始人。在外界看来,马斯克是商人,可是在很多人眼里,马斯楚天龙为什么变成焦点原因一数字货币板块在假日期间就有不断的利好消息面推动,所以板块迎来风口才有诞生妖股的时机,而楚天龙公司参与了多家运营机构的数字人民币试点项目所以成为最受益的核心股,才引发了资金抱团399元,小米对讲机3发布,支持4G全网通可5000公里对讲小米对讲机34G全国版今日正式发布,售价399元,已开启预约。主要功能亮点包括全国4G公网5000公里对讲,100小时超长待机,快捷组队,1对1语音通话。网络方面,小米对讲机3依托全屋覆盖,荣耀路由4Pro解决信号死角,畅享高速网络玩游戏的时候时常会遇到突然卡顿现象,这种情况大多是因为网络或者手机运行内存不足等造成的,当然网络卡顿的占比更大,这和家里使用的网络运营商或者路由器有很大关系,不过现在网络带宽升级也别等了!小米MIX5确定今年不会发布最近有一份来自小米的四曲面屏幕专利曝光,这款手机正面看起来十分圆润,似乎连R角的部分都做成屏幕了,所以正面几乎看不到边框,前置摄像头也是屏下隐藏式的。不知道这项专利会不会应用到下一微软认输?深度整合安卓与windows,反击iOS鸿蒙Fuchsia随着苹果推出M1系列芯片之后,统一了所有硬件平台的芯片,将Mac平台的intel芯片全部改为ARM架构的芯片了。而统一了ARM芯片后,苹果也将iOSMacOS等平台进行了打通,实现定价2599元却供不应求,12GB512GB,三天后再度开卖或将快速售罄需求量过大,而产能又不够,最终就会出现供不应求的情况,不过如今还能在竞争激烈的手机行业中生存的手机品牌,基本上产能实力已经都不弱了,包括曾经凭借高性价比这一卖点开阔市场,因此经常需
入门即高级第七代伊兰特技术解析1万起步,3年免息。超惠的预售政策,让第七代伊兰特赚足了眼球。现在,只差一个购买的理由。入门即高级。10月10日,第七代伊兰特举行线上技术发布会,对新车进行了全方位的技术解密。超越环比增长34。4,汉10月热销7545辆,强劲实力势不可挡最新产销快报显示,10月份,比亚迪汉热销7545辆,较9月环比增长34。4,其中汉EV10月销量5055辆,较9月环比增长39。5汉DM10月销量2490辆,较9月环比增长25。3思域Hatchback,名副其实的Dreamcar01hr上场即控场,思域Hatchback的上市在国内掀起一阵燃血激情的挑战旋风。思域Hatchback,即两厢思域。因其创造了纽北最速前驱车的战绩,扬名车坛,更被奉为一代神车,更网络流行语背后的故事在拼多多买iPhone的人,收到货要说这一句人生总有很多的十字路口,每一个路口都要你去做决定。比如朋友小王,最近就因为一个决定,而经过了一番激烈的思想斗争。这个决定说起来也没那么大双十一买手机,要不要去拼多多?原本她买衣服去咕咚F4智能手表,可以24小时实时监测体温,只要299元有健身习惯的朋友,手机里肯定有咕咚APP。作为一款老牌生活实用类手机运动软件,它可以随时随地记录我们的运动数据并且有专业的数据分析,通过游戏化社交化和碎片化的方式,来鼓励人们形成良爱立信打破华为5G毫米波速率纪录来自最新外媒消息,位于斯德哥尔摩Kista的爱立信工程团队实现了5G毫米波(mmWave)下4。3Gbps的下载速度,比华为2019年10月达到的3。67Gbps的速度更快,并且接中国各阶层收入及人数占比数据国家统计局发布中国统计年鉴2019披露中国各阶层收入及人数占比数据详细阶层人均收入如下极低收入层月收入在1000元以下,有5。6亿人低收入层月收入在10002000之间,有3。1亿第七代伊兰特上市终身免费保养再现锋芒买车容易养车难,北京现代伊兰特将打破这一魔咒。10月25日,第七代伊兰特正式上市,新车提供240TGDi和1。5L两种动力,共计六款车型,售价9。98万14。18万元。与此同时,北泡一泡,简单又省心,健康每一天不知道什么时候开始的,现在大家都流行在朋友圈晒自己一天的步数,为了不落后他人,只要时间允许每天晚饭过后都会带着手机跑步。基本上每天都是1万起步,这可累坏了我的双脚了,虽说鄙人的脚型ColorOS7全新设计引一众好评,新设计亮点你需要知道昨天,OPPO在北京正式发布ColorOS7,众人期待已久的轻快无边界来袭。在新版本中,其上新的闪回键和图标自定义功能引来众多路人好评。各大媒体号也纷纷在发布会后给出多角度功能实测全电集结东风Honda跑出电动化加速度传统车企如何电动化转型?东风Honda提供了新的市场样本。今年上海车展期间,东风Honda以全领域电动化车型全电集结,彰显出品牌拥抱电动化的态度与定力。由纯电MNV插混车型CRV锐