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

接口自动化场景用例对象嵌套对象

  以前写多接口场景用例的时候,基本上一个测试类里只包含我的接口用例要调用的方法,如果有需要调用其他方法都是写到通用里。本次我尝试把我的接口用例要调用的其他的解析的方法也写在我的测试类里,感觉看起来也挺舒服的。
  关于接口自动化前面已经提到了很多很多,今天想记录这一篇是因为原本我可以敷衍地写完我的用例的,但是我还是认真思考了。感觉自己棒棒哒!
  接口背景
  saveZnfy保存婴幼儿照护费用
  queryZxfjkcZnfyXq查询婴幼儿照护费用详情
  deleteZnfy作废婴幼儿照护费用
  看这三个接口,我想也知道我今天要写的场景是啥了吧?没错!
  保存婴幼儿照护费用查询婴幼儿照护费用详情作废婴幼儿照护费用。
  数据关系
  保存婴幼儿照护费用,返回CJLSH和CJXH;
  拿着CJLSH和CJXH可以查询婴幼儿照护费用详情,且返回婴幼儿照护费用相关信息;
  拿着婴幼儿照护费用相关信息可以作废该条婴幼儿照护费用。
  接口代码
  保存婴幼儿照护费用查询婴幼儿照护费用详情作废婴幼儿照护费用。
  packagecom。XXXXXXX。api。XX。XXX。XXX。XXXXX;
  importcom。alibaba。fastjson。JSON;
  importcom。alibaba。fastjson。JSONException;
  importcom。alibaba。fastjson。JSONObject;
  importcom。XXXXXXX。basedata。DataBaseName;
  importcom。XXXXXXX。basedata。GroupName;
  importcom。XXXXXXX。common。ApiResponse;
  importcom。XXXXXXX。common。EtaxHttpRequest;
  importcom。XXX。api。util。AssertUtil;
  importcom。XXX。api。util。JdbcUtil;
  importjavafx。util。Pair;
  importorg。springframework。http。HttpMethod;
  importorg。testng。annotations。Test;
  importru。yandex。qatools。allure。annotations。Title;
  importjava。util。ArrayList;
  importjava。util。List;
  importjava。util。Set;
  importstaticorg。testng。AssertJUnit。assertEquals;
  createbylxl01on20211211
  Title(婴幼儿照护费用多接口保存、查询、作废场景用例)
  publicclassSaveZnfyAndQueryZxfjkcZnfyXqAndDeleteZnfyTestextendsEtaxHttpRequest{
  Test(dataProviderexcel,groups{GroupName。WEBSB})
  publicvoidtestSaveZnfyAndQueryZxfjkcZnfyXqAndDeleteZnfy(Stringrun,StringtestName,Stringyhm,Stringdata,StringbeforeSql,StringexpectData,Stringdevice){
  执行前置sql,删除已采集的数据
  JdbcUtil。jdbcBatchUpdate(jdbcTemplateDynamic(DataBaseName。SB),beforeSql);
  定义婴幼儿照护费用的保存接口
  StringSaveZnfyApiwebsbhlwyhzxfjkcsaveZnfy;
  执行婴幼儿照护费用保存接口
  ApiResponseSaveZnfyApiresposerequestHlw(SaveZnfyApi,HttpMethod。POST,JSON。parseObject(data),yhm,device);
  打印婴幼儿照护费用保存接口的返回数据
  System。out。println(SaveZnfyApirespose);
  从婴幼儿照护费用保存接口的返回数据里提取查询婴幼儿照护详情页所需要的参数
  Stringcxxx(String)((JSONObject)SaveZnfyApirespose。getData())。get(cjlsh);
  Stringcxxx2(String)((JSONObject)SaveZnfyApirespose。getData())。get(cjxh);
  重写查询婴幼儿照护详情页的入参代码
  StringQueryZxfjkcZnfyXqData{zxfjkclxDm:0207,cjlsh:cxxx,cjxh:cxxx2,sbkcnd:2021};
  打印婴幼儿照护费用详情页的入参
  System。out。println(QueryZxfjkcZnfyXqDatais!!!???:QueryZxfjkcZnfyXqData);
  定义婴幼儿照护费用详情页的接口
  StringQueryZxfjkcZnfyXqApiwebsbhlwyhzxfjkcqueryZxfjkcZnfyXq;
  执行婴幼儿照护费用详情页的接口
  ApiResponseres2requestHlw(QueryZxfjkcZnfyXqApi,HttpMethod。POST,JSON。parseObject(QueryZxfjkcZnfyXqData),yhm,device);
  取出婴幼儿照护费用详情页的接口的返回
  System。out。println(res2is!!!???:res2);
  从婴幼儿照护详情页的接口的返回数据里提取作废婴幼儿照护所需要的参数
  StringtyxxfindJsonElement(JSONObject。toJSONString(res2),tyxx);
  StringznfyzcfindJsonElement(JSONObject。toJSONString(res2),znfyzc);
  重写作废婴幼儿照护的入参代码
  StringdeleteZnfyDatanewStringBuffer({)
  。append()。append(bglxDm)。append()。append(:)。append()。append(2)。append()。append(,)
  。append()。append(znfyzc)。append()。append(:)。append(znfyzc)。append(})。toString();
  打印作废婴幼儿照护的入参
  System。out。println(deleteZnfyDatais:deleteZnfyData);
  定义作废婴幼儿照护的接口
  StringdeleteZnfyApiwebsbhlwyhzxfjkcdeleteZnfy;
  执行作废婴幼儿照护的接口
  ApiResponseres3requestHlw(deleteZnfyApi,HttpMethod。POST,JSON。parseObject(deleteZnfyData),yhm,device);
  StringbodyJSON。toJSONString(res3。getCode());
  assertEquals(expectData,body);
  }
  根据字段获取json对应的value内容返回字符串适用于对象嵌套对象
  paramjson
  paramfindEle
  return
  publicstaticStringfindJsonElement(Stringjson,StringfindEle){
  ListPairString,StringfieldsnewArrayList();
  JSONObjectjsonObjectnull;
  try{
  jsonObjectJSON。parseObject(json);
  }catch(JSONExceptione){
  return解析异常;
  }
  parse(jsonObject,fields);
  for(PairString,Stringfield:fields){
  if(field。getKey()。equalsIgnoreCase(findEle)){
  returnfield。getValue();
  }
  }
  return不存在;
  }
  递归解析
  paramobj
  paramfields
  publicstaticvoidparse(JSONObjectobj,ListPairString,Stringfields){
  Setstringsobj。keySet();
  for(Stringstring:strings){
  Objectoobj。get(string);
  if(onull){
  continue;
  }
  PairString,StringstringStringPairnewPair(string,o。toString());
  fields。add(stringStringPair);
  if(o。getClass()。getName()。equals(com。alibaba。fastjson。JSONObject)){
  parse((JSONObject)o,fields);
  }
  }
  }
  }
  我的亮点
  作废婴幼儿照护费用是亮点。
  首先,保存婴幼儿照护费用查询婴幼儿照护费用详情这一段是很简单的。
  定义婴幼儿照护费用的保存接口
  StringSaveZnfyApiwebsbhlwyhzxfjkcsaveZnfy;
  执行婴幼儿照护费用保存接口
  ApiResponseSaveZnfyApiresposerequestHlw(SaveZnfyApi,HttpMethod。POST,JSON。parseObject(data),yhm,device);
  打印婴幼儿照护费用保存接口的返回数据
  System。out。println(SaveZnfyApirespose);
  从婴幼儿照护费用保存接口的返回数据里提取查询婴幼儿照护详情页所需要的参数
  Stringcxxx(String)((JSONObject)SaveZnfyApirespose。getData())。get(cjlsh);
  Stringcxxx2(String)((JSONObject)SaveZnfyApirespose。getData())。get(cjxh);
  重写查询婴幼儿照护详情页的入参代码
  StringQueryZxfjkcZnfyXqData{zxfjkclxDm:0207,cjlsh:cxxx,cjxh:cxxx2,sbkcnd:2021};
  打印婴幼儿照护费用详情页的入参
  System。out。println(QueryZxfjkcZnfyXqDatais!!!???:QueryZxfjkcZnfyXqData);
  定义婴幼儿照护费用详情页的接口
  StringQueryZxfjkcZnfyXqApiwebsbhlwyhzxfjkcqueryZxfjkcZnfyXq;
  执行婴幼儿照护费用详情页的接口
  ApiResponseres2requestHlw(QueryZxfjkcZnfyXqApi,HttpMethod。POST,JSON。parseObject(QueryZxfjkcZnfyXqData),yhm,device);
  但是作废婴幼儿照护费用这一段就没有那么好玩了,我们来看下作废婴幼儿照护费用所需要的参数:
  {
  bglxDm:2,
  tyxx:{
  nsrxm:null,
  nsrsjhm:1879200,
  nsrdzyx:,
  nsrtxdz:不告诉你,
  nsrpoxm:null,
  nsrposfzjlxDm:null,
  nsrposfzjlxmc:null,
  nsrposfzjhm:null,
  nsrsf:null
  },
  znfyzc:{
  cjlsh:1000000007203722,
  cjxh:1000000006605854,
  kjywrlbDm:null,
  kjywrdah:,
  sbkcnd:2021,
  kcyxqq:1638288000000,
  kcyxqz:1640880000000,
  cjrq:1640102400000,
  cjrlxDm:01,
  yxbz:Y,
  kjywrmc:,
  zzbjDm:null,
  zzbjmc:null,
  jyqdDm:11,
  kzztDm:null,
  nsrsjhm:1879200,
  nsrdzyx:,
  nsrtxdz:不告诉你,
  zndah:null,
  jtcyxh:5000006,
  xm:哈哈,
  sfzjlxDm:291,
  sfzjhm:L1,
  gjhdqszDm:156,
  gjhdqszmc:中华人民共和国,
  csrq:20211220,
  fpbl:100,
  cfjlzt:0,
  ynsrgxDm:2
  }
  }
  这个接口的参数很常见,如果我们直接把这个参数放到表格里,接口调用直接JSON。parseObject(Data)就能解析出来,但是我现在要从上一个接口(查询婴幼儿照护费用详情页)返回并解析给下一个接口(作废婴幼儿照护费用)当入参,所以写了一个解析的方法,如下:
  根据字段获取json对应的value内容返回字符串适用于对象嵌套对象
  paramjson
  paramfindEle
  return
  publicstaticStringfindJsonElement(Stringjson,StringfindEle){
  ListPairString,StringfieldsnewArrayList();
  JSONObjectjsonObjectnull;
  try{
  jsonObjectJSON。parseObject(json);
  }catch(JSONExceptione){
  return解析异常;
  }
  parse(jsonObject,fields);
  for(PairString,Stringfield:fields){
  if(field。getKey()。equalsIgnoreCase(findEle)){
  returnfield。getValue();
  }
  }
  return不存在;
  }
  递归解析
  paramobj
  paramfields
  publicstaticvoidparse(JSONObjectobj,ListPairString,Stringfields){
  Setstringsobj。keySet();
  for(Stringstring:strings){
  Objectoobj。get(string);
  if(onull){
  continue;
  }
  PairString,StringstringStringPairnewPair(string,o。toString());
  fields。add(stringStringPair);
  if(o。getClass()。getName()。equals(com。alibaba。fastjson。JSONObject)){
  parse((JSONObject)o,fields);
  }
  }
  }
  所以,作废作废婴幼儿照护费用的时候就可以直接调用这个方法:
  从婴幼儿照护详情页的接口的返回数据里提取作废婴幼儿照护所需要的参数
  StringtyxxfindJsonElement(JSONObject。toJSONString(res2),tyxx);
  StringznfyzcfindJsonElement(JSONObject。toJSONString(res2),znfyzc);
  重写作废婴幼儿照护的入参代码
  StringdeleteZnfyDatanewStringBuffer({)
  。append()。append(bglxDm)。append()。append(:)。append()。append(2)。append()。append(,)
  。append()。append(znfyzc)。append()。append(:)。append(znfyzc)。append(})。toString();
  打印作废婴幼儿照护的入参
  System。out。println(deleteZnfyDatais:deleteZnfyData);
  定义作废婴幼儿照护的接口
  StringdeleteZnfyApiwebsbhlwyhzxfjkcdeleteZnfy;
  执行作废婴幼儿照护的接口
  ApiResponseres3requestHlw(deleteZnfyApi,HttpMethod。POST,JSON。parseObject(deleteZnfyData),yhm,device);
  StringbodyJSON。toJSONString(res3。getCode());
  assertEquals(expectData,body);
  }
  EXCEL表格数据
  以上是接口用例代码,最后附上excel表格数据:
  除了保存婴幼儿照护费用的入参需要写到excel表格里,其他数据的传输和解析都在代码里实现了。
  这样的场景用例我觉得是比较合理、有效、能反映问题的。你们觉得呢?

会挣钱的人都有以下几个特点图片来源于网络相信自己有赚钱能力首先是相信自己有能力成为富婆。先给自己定个小目标,财富是可以慢慢积累的。厚积薄发,不要挣不来大钱,看不上小钱。有自己的目标和想法对未……gnc鱼油怎么样?效果显著的鱼油给大家安利一款鱼油,是保健品大户gnc健安喜的鱼油产品,价格也不贵,对于心脑血管,糖尿病和视力等等问题都有一定好处哦!gnc鱼油怎么样这款鱼油其实是效果不错的,尤其是三倍……肠炎宁片吃了多久见效?一般半小时每个药品吃多久见效是不一样的,那么这款治疗肠胃的药品肠炎宁片见效快不快呢,下面5号网的小编为你们介绍肠炎宁片吃了多久见效?一般半小时。肠炎宁片吃了多久见效半个小时内会有作……肠炎宁能治结肠炎吗?要看具体情况结肠炎也是肠道疾病,那么治肠胃炎的肠炎宁片是否能治这个病呢,下面5号网的小编为你们介绍肠炎宁能治结肠炎吗?要看具体情况。肠炎宁能治结肠炎吗现在可以治疗疾病的药物有很多,针……补佳乐的作用和功效补佳乐你需要了解这些补佳乐这个药很多人都很陌生,没怎么听过,下面5号网的小编为你们介绍补佳乐的作用和功效,补佳乐你需要了解这些。补佳乐的作用和功效补佳乐为雌激素缺乏症,如绝经后的更年期症状,……圣洁莓可以治疗多囊吗?多囊能吃圣洁莓吗?多囊是女性疾病,得了这个病需要好好调理,据说圣洁莓胶囊是可以治疗多囊的,那么这个说法对不对呢,下面介绍圣洁莓可以治疗多囊吗?多囊能吃圣洁莓吗?圣洁莓可以治疗多囊吗多囊完全……圣洁莓可以长期吃吗?长期圣洁莓好吗?许多保健品是不适合长期吃的,并不是多多益善,圣洁莓是一款调节内分泌的保健品,销量还是蛮好的,下面介绍圣洁莓可以长期吃吗?长期圣洁莓好吗?圣洁莓可以长期吃吗可以发挥类似人体……swisse圣洁莓多少钱一瓶swisse圣洁莓一瓶可以吃多久swisse圣洁莓片是一款女性专用的保健品,它对于调节月经和内分泌都有很好的作用,是不少女性离不开的一款产品,那么swisse圣洁莓的价格是多少呢?swisse圣洁莓多少钱一瓶……swisse圣洁莓可以长期吃吗swisse圣洁莓会吃出子宫肌swisse圣洁莓对于女性来说应该不陌生,这是swisse家比较适合女性的一款产品,特别是对月经不规律的人来说效果会比较明显,那么swisse圣洁莓能不能长期吃呢?swisse……swisse圣洁莓怎么吃swisse圣洁莓一天吃几粒swisse圣洁莓是一款对女性很好的保健品,它可以美容养颜,还有助于调节月经和备孕,很多女性都有坚持在吃,那么swisse圣洁莓应该怎么吃呢?swisse圣洁莓怎么吃sw……上半年换机别盲目!数码老司机带你盘点三款重磅新机产品力拉满正值开春之际,近期各大手机厂商相继将新机提上发布日程,根据预热信息和爆料来看,这些新机可谓黑科技频出,对于广大消费者而言无疑有着巨大的吸引力,又到了更换手机的黄金时机。那么,如……圣洁莓哺乳期可以吃吗?哺乳期可以吃圣洁莓吗?哺乳期的女性因为要喂奶,是不能乱吃东西的,因为有的东西会随着乳汁分泌而让宝宝吸收,下面介绍圣洁莓哺乳期可以吃吗?哺乳期可以吃圣洁莓吗?圣洁莓哺乳期可以吃吗1、不推荐在怀孕……
70年前的战争片,好评率高达40。6,一点都不输当代的战争电提到现在的战争题材电影,可以说,给观众留下深刻印象的,但也可以肯定是众说芸芸,有人会为电影火爆特效感到震撼,也有人为电影深入人心的剧情而深深感动,当代的电影可谓是特效和剧情的大……四季养生小暑养生要点有哪些?科普指导:深圳市中医院治未病中心李博涵七月七日适值小暑,气候炎热,虽不是一年中最炎热的季节,但紧接着就是一年中最热的季节大暑,俗话说小暑大暑,上蒸下煮。春夏养阳,小……张碧晨回应左耳失聪,并非怀孕导致,网友们纷纷发声嘲讽华晨宇当初华晨宇和张碧晨在某社交平台承认未婚生女的事件可以说轰动了整个娱乐圈。众人哗然!因为他们都是当红歌手,有着各种独特的美好人设。那时候的张碧晨也处于事业上升期,两个分手,后来发……这脑洞!令人惊叹的焊接大法文章下方附学习资源,自助领取小立方体卫星一个基于ATtiny45微控制器的小立方体由超级电容供电,并由几个太阳能电池充电。原理图非常简单。使用ATtiny85微控制……弹幕评论均是好评,ROG游戏手机6为何频频种草?为大家总结了骁龙8较为优秀的能耗比表现,以及性能的提升,不少手机厂商都开始卯足了劲开案新品。小米12s系列首发了骁龙8的机器之后,第二天的ROG游戏手机6也是立马接棒,一下子手机圈好不热闹……李立群女儿李元元初恋给了黑人,32岁婚姻问题成父亲的烦恼前段时间的上海yi情让很多人隔离家中,有人闲来无事在网上分享了自己的生活日常,包括很多明星,比如李立群。不过在李立群的日常分享中,还有一个人引起了大家的注意,那就是他的女儿李元……联盟工资帽大涨詹姆斯正式超越乔丹哈登大幅度降薪留守76人今天NBA又迎来了很多交易动态,其中大家最关心的就是马刺将全明星后卫穆雷交易至老鹰的重磅消息,这交易确实让很多球迷无法理解,要知道穆雷可是马刺亲手培养起来的全明星,波波维奇曾一……超级QQ秀你教我唱,听着音乐舞动节拍,一起嗨起来超级QQ秀最近上线了一个非常有意思的小游戏,叫你教我唱,这是超级QQ秀众多小游戏中的第一个音乐游戏,大家可以一边欣赏动听的音乐,一边跟随节拍舞动手指,和好友较量一下谁的反应更灵……好男人孟桐爱上未婚生子的那英,爱妻子的全部,对继子视如己出文丨虞白编辑丨痞爷桐子,你知道吗?当我听说他跟别的女人有一个孩子的时候,你知道我有多崩溃吗?你知道我这一年的日子是怎么熬过来的吗?看着眼前的女子一杯一杯猛灌自……苹果官网改版,Apple闪送来了8月2日消息:日前,我们在浏览苹果官网时发现,官网中的购买页面已经有了新的改进。更新后的官网,重新规划了选款界面,新的选款界面扩大了产品预览窗口,同时缩小了选配栏。……国产手机与三星手机的差距在哪里众所周知,三星手机近些年在国内销售市场一直受拙,但在全球市场占有份额却紧次于苹果手机,就拿三星年度旗舰机型S22Ultra来说,其简约精致的设计风格,高效流畅的操控体验曾一度让……广东被淘汰后!5核心合同到期,朱芳雨左右为难,顶薪名额只有2北京时间4月17日,广东宏远结束新赛季的比赛任务后,对于球员而言,这是他们真正得到假期,放松和调整心态的重要时间段。但对于朱芳雨开始,真正的工作恐是才刚刚开始,要知道,休赛期合……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网