幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

基于springboot的支持http接口dubbo接口的T

  一、背景
  由于大多数公司都是使用Java作为后端开发语言,因此为了更好的与研发的框架对接、测试,掌握一套Java的自动化测试框架也逐渐成为测试人员的必修课。
  同时随着现在微服务框架的流行,自动化测试框架除了支持传统的http接口之外,各系统微服务间的RPC接口的自动化测试需求也越来越旺盛。本篇文章主要介绍基于springboot的支持http接口dubbo接口的TestNG自动化测试框架。
  欢迎关注我的微信公众号:程序员杨叔,各类文章都会第一时间在上面发布,持续分享全栈测试知识干货,你的支持就是作者更新最大的动力二、框架结构
  项目整体采用springboot框架,首先来看框架的整体结构图:
  1。数据驱动:
  使用Json文件作为case的数据驱动,Json文件中包含了接口的基础信息、入参信息、期望结果信息:
  TestDataJson文件:{dataItem:〔{id:createActivity1,name:创建活动,desc:创建活动,isRun:Y,url:https:testxxxx。comadd,parameters:{name:自动化测试活动},expectData:{code:0000,result:成功,}}〕}2。测试用例调度框架:
  使用testNG框架作为测试用例调度框架,TestCase类:publicclassserviceTestextendsBaseCase{测试Json文件读取效果Test(dataProviderTaskServiceData,dataProviderClassTaskServiceDataProvider。class)publicvoidtestData(ParamOBparamOB)throwsTaskRemoteException{System。out。println(paramOB。toString());Reporter。log(获取Json文件入参为:paramOB。toString());}}
  BaseCase类:importorg。springframework。boot。test。context。SpringBootTest;importorg。springframework。test。context。testng。AbstractTestNGSpringContextTests;SpringBootTestpublicclassBaseCaseextendsAbstractTestNGSpringContextTests{}
  BaseCase类的作用:继承AbstractTestNGSpringContextTests,AbstractTestNGSpringContextTests这个类的作用:测试类只有继承了该类才拥有注入实例的能力。
  同时BaseCase添加了SpringBootTest注解,Spring将加载所有被管理的bean。不然测试类注入bean时会报空指针。3。Http接口调用:
  使用okhttp3工具包调用,OkHttpUtils类:publicStringokHttpPost(HashMapString,StringrequestBody,Stringurl,StringcookieValue){设置接口调用超时时间为60秒OkHttpClientclientnewOkHttpClient()。newBuilder()。connectTimeout(60,TimeUnit。SECONDS)。readTimeout(60,TimeUnit。SECONDS)。build();可以单独把formbody拿出来FormBody。BuilderformBuildernewFormBody。Builder();将传进来包含的参数键值对的map集合遍历出来for(Objecto:requestBody。keySet()){将参数添加到frombody中formBuilder。add(o。toString(),String。valueOf(requestBody。get(o。toString())));}将frombody初始化到request对象中然后拿去请求RequestBodybodyformBuilder。build();RequestrequestnewRequest。Builder()。url(url)。method(POST,body)。addHeader(ContentType,applicationxwwwformurlencoded)。addHeader(Cookie,cookieValue)。build();try{Responseresponseclient。newCall(request)。execute();Stringrescontentresponse。body()。string();log。info(调用接口:url返回rescontent);returnrescontent;}catch(IOExceptione){e。printStackTrace();returnnull;}}publicStringokHttpGet(Stringurl,StringcookieValue){OkHttpClientclientnewOkHttpClient()。newBuilder()。connectTimeout(60,TimeUnit。SECONDS)。readTimeout(60,TimeUnit。SECONDS)。build();RequestrequestnewRequest。Builder()。url(url)。addHeader(ContentType,applicationxwwwformurlencoded)。addHeader(Cookie,cookieValue)。build();try{Responseresponseclient。newCall(request)。execute();Stringrescontentresponse。body()。string();returnrescontent;}catch(IOExceptione){e。printStackTrace();returnnull;}4。Dubbo接口调用:
  使用zookeeperdubboxml配置方式调用dubbo接口,applicationtest。properties配置文件:dubbo。registry。addresszookeeper:testzk1。xxxx。com:2181dubbo。application。nameautotest
  springdubboconfig。xml配置文件:lt;?xmlversion1。0encodingUTF8?beansxmlnshttp:www。springframework。orgschemabeansxmlns:xsihttp:www。w3。org2001XMLSchemainstancexmlns:dubbohttp:code。alibabatech。comschemadubboxsi:schemaLocationhttp:www。springframework。orgschemabeanshttp:www。springframework。orgschemabeansspringbeans。xsdhttp:code。alibabatech。comschemadubbohttp:code。alibabatech。comschemadubbodubbo。xsddubbo:applicationname{dubbo。application。name}!zookeeper注册中心dubbo:registryaddress{dubbo。registry。address}checkfalse!要测试的Dubbo服务dubbo:referenceidtestDubboServiceinterfacecom。xxxx。dubbo。TestDubboServicetimeout1000checkfalsebeans
  TestCase类调用dubbo接口:publicclassDubboServiceTestextendsBaseCase{ResourceprivateTaskDubboServicetaskDubboService;Test(dataProviderTaskServiceData,dataProviderClassTaskServiceDataProvider。class,description测试dubbo接口)publicvoidtestDubbo(ParamOBparamOB)throwsTaskRemoteException{1。获取Json数据中的用例ID、名称、入参、期望结果数据StringparamparamOB。getParams();StringexpectDataparamOB。getExpectData();2。转换为对应的参数对象信息TaskContexttaskContextJSONObject。parseObject(param,TaskContext。class);Reporter。log(接口入参为JSONObject。toJSONString(taskContext));3。测试环境正常调用接口ListInforesulttestDubboService。process(taskContext);StringresultStrJSONObject。toJSONString(result);Reporter。log(testDubboService接口返回为resultStr);去掉返回结果前后的中括号StringfinalResultStringUtils。strip(resultStr,〔〕);4。转化格式然后调用check方法校验接口返回结果和Json文件中的期望结果数据是否匹配MapString,ObjectexpectDataMapJSONObject。parseObject(expectData,Map。class);CommonResultCheck。CommonJsonCheck(finalResult,expectDataMap);}}5。测试报告:
  使用ExtentReports报告框架输出测试报告,testng。xml配置文件:lt;?xmlversion1。0encodingUTF8?!DOCTYPEsuiteSYSTEMhttp:testng。orgtestng1。0。dtdsuitename测试模板testname测试入参获取classesclassnamecom。autotestdemo。cases。task。api。testCase。TaskServiceTestmethodsincludenametestDataincludemethodsclassclassestestlisteners!listenerclassnamecom。vimalselvam。testng。listener。ExtentTestNgFormatterlistener!直接使用我们自己写的监听器,可以跳过翻墙的Js文件,不然报告一致转圈圈加载不出来listenerclassnamecom。autotestdemo。utils。ExtendTestNGIReporterListenerNewlistenerssuite三、项目目录结构文件内容介绍1。主目录srcmain
  srcmainjava用于存放一些封装公共方法类和基础类:CommonResultCheck:封装结果方法断言类OkHttpUtil:封装http请求方法类DBUtil:封装数据库操作方法类AutotestdemoApplication:springboot启动类
  srcmainresources用于存放各类配置文件:applicationtest。properties:配置文件(zookeeper、数据库配置等)springdubboconfig。xml:dubbo配置文件2。测试目录srctest
  srctestjavacases用于存放测试用例:systemName文件夹:系统名称文件夹dataProvider文件夹:系统的测试数据获取类testcase文件夹:系统的测试用例类
  srctestjavautils用于存放公共方法类:DataProviderUtils:转换测试数据为DataProvider格式类ExtendTestNGReporterListenerNew:测试报告优化类ParamOB:测试数据对象类LoginUtil:封装登录方法类ReadJsonUtil:封装读取Json文件数据方法类
  srctestresources用于存放测试数据、离线报告样式文件等:css文件夹:ExtendReport报告的css文件js文件夹:ExtendReport报告的js文件font文件夹:ExtendReport报告的字体文件jsonData文件夹:存放各系统接口Json测试数据testSuites文件夹:存放testNG的xml文件用于批量运行3。测试报告结果展示:
  以上就是本次的全部内容,都看到这里了,如果对你有帮助,麻烦点个赞收藏关注,一键三连啦
  程序员杨叔:持续分享全栈测试知识干货。标签:自动化测试、性能测试、Java、Python、DevOps、CICD、小程序测试、测试工具、测试开发、测试框架平台、测试管理

布一样的精彩台儿庄古城扎染,为冬天增添一抹色彩扎染古称扎缬、绞缬、夹缬和染缬,是中国民间一项传统而独特的染色工艺,传承至今已成为重要的工艺瑰宝,被列为国家级非物质文化遗产。古城台儿庄,一个寻梦的地方。在这里有这么一家……解锁天柱山2000年沉淀的美丽一座2000年历史的名山,并不会单纯像一幅画卷那般,直白地展现在你面前,一览无余。每一个旅行目的地,我们大都是用视觉的方式去感受它的美,不过,要解锁它的美,读懂它的美,却……清明养生有三个要点护脾胃调情志防过敏清明时节,养生保健重点做好三方面4月5日是二十四节气中的清明节气。清明,天清地明,气温上升,雨水增多,万物欣欣向荣。但是多变的气候也随之而来,寒暖无常,加之疫情未平息。东……手机内存空间要满了!2022年256512GB大容量手机哪些有哪些高性价比的国产手机前言各位网友们,大家春天好,我是好物菌。手机存储空间不足的弹窗就像手机电量不足的焦虑症一样,时不时温馨提示一下,让人非常烦躁,这是很多消费者……夏至后,抓住孩子长高的黄金期,多给孩子吃这4种菜,不吃亏夏至过后就全然有了夏天的味道,也迎来了孩子长高的黄金期,尤其是不爱吃饭的孩子们,宝妈们更应该抓住一年中最佳的长高时机。夏天炎热,孩子们容易食欲不振,多给孩子吃这4道家常菜……街机游戏玩家一辈子都没干掉的敌兵,就算开作弊也徒劳无功当年不知道是谁传出来的,说是《恐龙快打》四关门口,以及二关BOSS场景之前的武器捡不得,捡了之后BOSS的血量会增加,而且战斗力会变强。后来又有传言说,四关出场要是手速快……每天一个鸡蛋,是养生,还是损坏心血管?研究后表明答案鸡蛋是人们心目当中公认的全营养价值食品,富含高优质蛋白、微量元素、维生素、矿物质元素、卵磷脂、氨基酸等等,可以为生命活动提供源源不断的能量,增加物质补给。在之前的生活经济……22号碎片商店突变,留88碎片巨赚,女娲v7美哭,孙悟空双喜原创王者小乔妹王者荣耀新版本即将更新来袭,此次孙策的末日机甲皮肤受到了不少玩家的好评,大招开启飞艇的技能特效十分炫酷,还有随着速度提升,飞艇喷射的火焰也是拥有三级状态,皮……星巴克的傲慢和某东的担当处于全国风尖浪口上的星巴克,回应了大家的关注,说真的,我个人认为这个事处理的挺敷衍的!回应称因为其他顾客需要调整座位系其他顾客想调整座位及语言不当引起的误会!实际上……初夏颈部别再留白了,会戴项链才能玩转时尚,不信看潮人示范初夏气温上升很快,在穿衣打扮上如何提升造型的清爽感、避免沉闷,是很多人都关心的问题。为了化解沉闷,相信不少人都会借助颈部留白增加脖颈处的露肤面积。但这一方式会导致脖颈区域……中超各队外援名单4队未用满5名额,深足仅2外援挑战巨大直播吧4月13日讯在2023赛季中超首个转会期关窗后,记者牛志明发文梳理了中超各队的外援情况,他认为仅有两名外援的深足将面临巨大的挑战。2023赛季中超冬季转会期,16支……夜郎湖上三桥飞架铺就普定幸福坦途来源:【安顺日报掌上安顺】湛蓝的天幕下,翻滚的普定三岔河一路高歌,奔向更远的地方。位于普定县坪上镇与定南街道交接处的小兴浪大桥(老桥),横亘在奔腾的三岔河之上。近邻……
崩了!零售巨头宣布放弃!数十亿订单被取消!10月订单荒蔓延不知不觉,金九已临近尾声。不少化工老板用躺平、艰难来形容今年的金九。但是,对于某些细分行业来说,最难的日子可能还在后头。01海运费暴跌!全球陷入订单荒!近日,全球家……CBA第一轮结束后,这3名主帅成为下课大热门,夺冠热门教头在目前,CBA新赛季首轮赛程已经结束,各支球队也都展示出了休赛期的集训成果。其中最让球迷眼前一亮的应该是南京同曦。他们的阵容并不豪华,数位球员都还处在新秀阶段,而主教练还需要肩负……24分逆转,10个三分,极限追平,高难度绝杀,今年最精彩的比在今天的早些时间,NBA结束了一场卡位大战,由尼克斯主场对阵凯尔特人。这一场比赛,但从名字上来看,基本大多数人都认为是一场平平无奇的比赛,毕竟两队目前的球迷流量并不大,赛前的亮……这些炫酷的沉浸式餐厅,颠覆你对传统餐厅的认知沉浸式餐厅也叫全息光影餐厅、互动投影餐厅,主要是借助全息投影、裸眼3D以及动作捕捉等技术对餐厅四周墙面进行投影,通过画面、声音、灯光等元素搭配,营造一种高度真实的模拟场景,让顾……小米智能家居远程控制方案得益于小米生态链的强大布局,以及米家APP丰富的功能和拓展性,目前小米系的智能家居也成为了越来越多家庭的选择。那小米智能家居可以远程控制吗?其实是可以远程控制的,一般没有距离限……投影仪推荐什么投影仪好用不贵,六款好用的投影仪推荐如今我们的生活已经是处处充满了数码产品,手机和电脑已经是必不可缺的重要数码产品;但是我们的生活总是需要更多的娱乐设备来放松自己,我们对于看电影追剧的追求也变的更高了,很多人想随……土耳其科学家完成第二次北冰洋考察周二(7月26日),土耳其科学家完成了在北冰洋为期22天的考察,在新项目上取得了突破,并沿途收集了大量的数据。7月4日,在土耳其科学和技术研究所(TUBITAK)下属的M……慢性肠炎怎么调理?治疗慢性肠炎食疗大全慢性肠炎主要是由于细菌引起的一种肠道疾病。通常会引发恶心、呕吐或者腹泻等症状,那么,慢性肠炎怎么调理?今日为大家带来治疗慢性肠炎食疗大全,感兴趣的朋友可以看下:治疗慢性肠……关于新能源汽车发展,这场大会释放哪些信号?9月21日,以融合激发新动能开放驱动新发展为主题的2022世界制造业大会中德新能源汽车产业发展论坛在安徽省合肥市举行,来自全球的新能源汽车领域专家在这场盛会上,共同探讨新能源汽……一碗驱寒汤,逼出体内陈年旧寒,通脉温血通全身如果你关节怕凉,而且在天气稍有变化后,就有关节疼痛加剧、身体不适的情况,那你一定要看这篇文章。天气变冷,对有关节病的患者来讲,可是难熬的一件事情。后台很多骨病患者留言说自……在元宇宙和数字IP等新元素加持下,红色旅游有哪些新玩法?进入七月,暑期旅游旺季拉开帷幕,红色旅游市场也显著升温。文化和旅游部数据显示,十三五期间,红色旅游出游人数稳定增长,在国内旅游市场中维持在11以上的市场份额;进入十四五以……绿色氢能大战开打,欧将生产工业级电解制氢器氢能出头,欧洲企业SiemensEnergy和AirLiquide计划成立合资企业,生产工业等级的水电解产氢器,以降低绿色氢能成本、提高产业竞争力。CNBC报道,Siem……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网