说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
接着上一篇博客继续往下写 :2019 Python接口自动化测试框架实战开发(一)_cdtaogang's blog-CSDN博客_python 接口自动化测试
目录
七丶接口自动化框架设计到开发
14.数据依赖问题从设计思路开始
说明:博主之前的测试的app不存在数据依赖的接口,所以博主这里下载了苏宁易购,用其下单以及支付两个接口来说明接口数据依赖
- 在苏宁易购上选择一款手机,点击立即购买后选择购买的内存以及颜色后,点击确定跳转到订单页面,如下图所示
- 通过fiddler抓取下单的接口,该接口返回的数据中可以看出cart2No=620200000207514372,该商品的订单编号以及customerNo=7157450907客户编号
- 在订单页面,点击提交订单,抓取提交订单接口,该接口post请求data数据中的cart2No参数的值,该值就是服务器返回下单接口的数据,这就是所谓的接口数据依赖,需要说明的是,提交订单的接口服务器返回的响应为errorMessage=销售火爆,请稍后再试(E234),博主测试其他的商品都是提示该错误信息,说明苏定的app此时不能进行购买商品
- 博主整理了一下整个下单和支付的接口已经请求数据和响应数据
# 下单
request_url = "https://shopping.suning.com/app/addcart/private/quickBuy.do"
request_data = {
"data":{"cartHeadInfo":
{"userFlag":"0","directFlag":"1","operationChannel":"50",
"operationTerminal":"01","operationEquipment":"02","operationUser":"",
"token":"0706172998861561345578681_3989FF3858C23E2FE49FB96928935FC51BC2D7E2B00145D19087E1232123D1E2F6AEA7E5A1D95F2B9BC731F5FA0F0B48",
"detect":"mmds_a_._920c68ed-4fcc-440e-a717-28b23d2a26fd_._YQQQ**1_PaaX*C****4*n**1_Paa0*C**1-D*n******2_*****oy****1_PbTSXH*1J54.o*******1XH**1LD.o*o1_PaA7XH****k.o******Pv****Pdy****1_P0DZcc**iU4Mq**1_P0DZcc**1-DMq**1_PcB_c2**lm4M9**1_PcB_c2**1-DM9******MS****OHy****1_Pc9*ce**GH4YZ**1_Pc9*ce**1kDYZ**1_Pc9*ce**Iq4YZ**1_Pc9*ce**17DYZ**1_Pc9*cH**DU4Yn**1_Pc9*cH**1CDYn**1_Pc9*cc**3m4Yn**1_Pc9*cc**P3DYn**1_Pc9*cd**X0441**1_Pc9*cd**1AD41**1_Pc9*cm**3R44Z**1_Pc9*cZ**1-D4Z**1_Pc9*cZ**Pa44Z**1_Pc9*cZ**1oD4Z*******1cZ**1p44Z**1_Pc9*cZ**ReD4Z**1_Pc9*cZ**1m44Z**1_Pc9*cZ**1lD4Z**1_Pc9*cm**1X44Z**1_Pc9*cm**1eD4Z**1_Pc9*ck**1l44Z**1_Pc9*ck**1lD4Z**1_Pc9*ck**Px44Z**1_Pc9*ck****D4Z**1_Pc9*cL**9m4Y_**1_Pc9*cL**1kDY_*******1cL**1S4Y_**1_Pc9*cL**RkD41**1_Pc9*cJ**18441**1_Pc9*cJ**1iD41**1_Pc9*cJ**1m441**1_Pc9*cJ**1kD41**1_Pc9*ch*1Sx441**1_Pc9*ch**1aD41**1_P0jS*yPUup4*4**1_P0jS*y**1_D*4******Pv*****ty****1_P0DZch*1WE4Ob**1_P0DZch**1xDOb**1_PcB_c0**fx4M0**1_PcB_c0**1oDM0******MS****3Sy********Pv***J*Ey********2_****ixy****1_PbTS*y**UZ4*d**1_PaPK*y**1XD*d******2N*****By****1_PaPi*v**KZ4*n**1_PaPi*v**POD*n******RA*****hy****1_PcVIcd**qr449*******1cd**POD49**1_PbZJM1**if4YK**1_PavoM1**PXDYK******.p****13y****1_PcjG2E*EhR42N*******12E**1oD2N******Pv****POy****1_PaaX*5*.xf4*j**1_Paa0*5**1CD*j******.p*****qy****1_PcjG2a**uo42x*******12a**PeD2x******Pv****1zy****1_P0DZcc**C84O4**1_P0DZcc**P*DO4**1_PcB_cc*P9m42a**1_PcB_cc**P3D2aQQQNvJjJhSpefQQQMMceTs**aYcXDfPGXDsuXcYGMXuCaebCQQQMDYaPPYKtBQQQMDMYuQQQMQQQP*sPYDCXXPDsaQQQMQPQMf46724f27b81204df0356ffa5666c5ec","dfpToken":"TFItvV179MauUij2SsWqz0b18","operationStoreCode":"","provinceCode":"020","cityCode":"021","districtCode":"02111","logContent":""},
"immediateBuyItems":[{"itemHeadInfo":{"itemNo":"1","activityType":"01","activityId":""},
"mainCmmdtyInfo":{"basicInfo":{"itemNo":"1","cmmdtyCode":"000000010985369117","shopCode":"0000000000","shopAddCode":"0030001790","shopName":"苏宁自营","overSeasFlag":"","cmmdtyQty":"1","serviceStoreCode":"","serviceStoreName":"","commodityType":"","carShopSerWay":""}}}],
"supportYB":"1","publishDate":"20190508"
}
}
response_data = {
"api":"ccf.cart1.quickbuy",
"code":"1",
"data":{"errorInfos":[],"result":{"cart2No":"620200000207521425","customerNo":"7157450907","isSuccess":"Y","reserve":"","safeDps":"0","showRecommend":"1"}},
"msg":"","v":"1.0"
}
cart2No = response_data["data"]["result"]["cart2No"]
# 支付
request_url = "https://shopping.suning.com/app/V2/private/confirmOrder.do"
request_data = {"cart2No":cart2No,
"salesPerson":"",
"channelType":02,
"terminalVersion":MOBILE|02|01|7.7.3|11007,
"terminalModel":HUAWEI|DUK-AL20,
"orderMemoJson":[],
"saleChannel":000000011116457666|9264|121.492479|31.247221|00|06|;000000011039772482|9264|121.492479|31.247221|00|06|,
"showGift":1,
"cipher":"",
"detect":"mmds_a_._920c68ed-4fcc-440e-a717-28b23d2a26fd_._YQQQ**1_Pc9*cd****DY5**1_Pc9*cd**jx4Y5**1_Pc9*cd**PODY5**1_Pc9*cd**9T4Y5**1_Pc9*cd**PMDY5**1_Pc9*cd**X04Y5**1_Pc9*cd**PeDY5**1_Pc9*cd**4q4Y5**1_Pc9*cd**PkDY5**1_Pc9*cd**Dm4Y5**1_Pc9*cd**PkDY5**1_Pc9*cd**E34Y5**1_Pc9*cd**PlDY5**1_P0jS*y*SjM4*X**1_P0jS*y**1ND*X******Pv*****ty****1_P0DZcH*11i42u**1_P0DZcH**1_D2u**1_PcB_cD**mY42A**1_PcB_cD**1oD2A******MS****Muy****1_P0jS*_**pG4*m**1_P0jS*_**1SD*m******Pv*****qy****1_P0DZci*3bJ4MK**1_P0DZci**1-DMK**1_PcB_c**YjB4RB**1_PcB_c***1oDRB******MS****MPy****1_Pc9*ct*1To4YC**1_Pc9*ct**1CDYC**1_P0jS*C1sPt4*J**1_P0jS*C**1CD*J******Pv*****yy****1_PaaX*C**E-4*n**1_Paa0*C**1-D*n******2_*****oy****1_PbTSXH*1J54.o*******1XH**1LD.o*o1_PaA7XH****k.o******Pv****Pdy****1_P0DZcc**iU4Mq**1_P0DZcc**1-DMq**1_PcB_c2**lm4M9**1_PcB_c2**1-DM9******MS****OHy****1_Pc9*ce**GH4YZ**1_Pc9*ce**1kDYZ**1_Pc9*ce**Iq4YZ**1_Pc9*ce**17DYZ**1_Pc9*cH**DU4Yn**1_Pc9*cH**1CDYn**1_Pc9*cc**3m4Yn**1_Pc9*cc**P3DYn**1_Pc9*cd**X0441**1_Pc9*cd**1AD41**1_Pc9*cm**3R44Z**1_Pc9*cZ**1-D4Z**1_Pc9*cZ**Pa44Z**1_Pc9*cZ**1oD4Z*******1cZ**1p44Z**1_Pc9*cZ**ReD4Z**1_Pc9*cZ**1m44Z**1_Pc9*cZ**1lD4Z**1_Pc9*cm**1X44Z**1_Pc9*cm**1eD4Z**1_Pc9*ck**1l44Z**1_Pc9*ck**1lD4Z**1_Pc9*ck**Px44Z**1_Pc9*ck****D4Z**1_Pc9*cL**9m4Y_**1_Pc9*cL**1kDY_*******1cL**1S4Y_**1_Pc9*cL**RkD41**1_Pc9*cJ**18441**1_Pc9*cJ**1iD41**1_Pc9*cJ**1m441**1_Pc9*cJ**1kD41**1_Pc9*ch*1Sx441**1_Pc9*ch**1aD41QQQNvJjJhSpefQQQMMceTs**aYcXDfPGXDsuXcYGMXuCaebCQQQsaCMDCXuDYQQQMDMYuQQQMQQQP*sPYDCMMusCuQQQMQPQM73a04a9cdb50e2faa2bf8d79252434e3",
"dfpToken":"TFItvV179MauUij2SsWqz0b18",
"deviceNo":"868334782216554",
"specDesc":[{"itemNo":"620200000344251973","pictureLink":"\/\/imgservice.suning.cn\/uimg1\/b2c\/image\/5lHDNQYOPSu5tQWQt9JdHA.jpg","specInfos":[{"specTypeName":"颜色","specContent":"秘境黑"},{"specTypeName":"规格","specContent":"6GB+64GB"}]}],
"splitFlag":01,
"publishDate": 20190508,
}
response_data = {
"api":"ccf.cart2.submitOrder",
"code":"1",
"data":{"cardInfoss":[],"cartHeadInfo":{"alipayWakeFlag":"1","cart2No":"","customerNo":"","dfpTokenStatus":"","isSuccess":"N","miniCartRouteSwitch":"","payStatus":"","toastTime":"5"},
"errorInfos":[{"cmmdtyPrice":"","dareType":"","earlyPrice":"",
"errorCode":