*** Settings *** Documentation 拼版下单 Library urllib3 Library Collections Library RequestsLibrary Library DatabaseLibrary Library JSONLibrary Library demjson Library HttpLibrary *** Test Cases *** spuDetail #拼版订单 #获取spu列表 Create Session factory ${yytClient} ${ClientHeader} ${reps} GET On Session factory printing-packaging-factory-service/user/get/all-spu-list params=printingType=2&status=1 ${records} Get From Dictionary ${reps.json()['data']} records #盒型列表 FOR ${SPUData} IN @{records} ${url} Get From Dictionary ${SPUData['imageUrlList'][0]} url #盒型图片 ${name} Get From Dictionary ${SPUData} name #盒型名称 ${spuId} Get From Dictionary ${SPUData} id #盒型id ${orgId} Get From Dictionary ${SPUData} orgId #盒子归属组织id ${factoryId} Get From Dictionary ${SPUData} factoryId #盒子归属工厂id Exit For Loop If '${name}'=='内托' END Set Global Variable ${url} Set Global Variable ${name} Set Global Variable ${spuId} Set Global Variable ${orgId} Set Global Variable ${factoryId} #盒型详情 ${SPUDetail} Set Variable {"spuId":"${spuId}","basic":true} ${reps} POST On Session factory printing-packaging-factory-service/user/render/spu-detail ${SPUDetail.encode('utf-8')} ${quote} Get From Dictionary ${reps.json()['data']} quote #获取报价基础信息 ${amount} Get From Dictionary ${quote} amount #获取盒型报价 ${quantity} Get From Dictionary ${quote} count #${quantity} evaluate random.choice(['1000','2000','3000','4000','5000']) random #数量随机数:1000~5000 ${spuDetail} Get From Dictionary ${reps.json()['data']} spuDetail #获取盒型参数信息 ${spuDetail} Update Value To Json ${spuDetail} $..value null #修改value字段key为null ${spuDetail} Update Value To Json ${spuDetail} $..remark null #修改remark字段key为null ${spuDetail} Update Value To Json ${spuDetail} $..partNum null #修改partNum字段key为null ${spuDetail} Update Value To Json ${spuDetail} $..displayName null #修改displayName字段key为null ${spuDetail} Update Value To Json ${spuDetail} $..spuCategoryName null #修改spuCategoryName字段key为null ${spuDetail} Update Value To Json ${spuDetail} $..measureFormulaId null #修改measureFormulaId字段key为null ${spuCategoryId} Get From Dictionary ${spuDetail} spuCategoryId ${SpuSize} Get From List ${spuDetail["spuSpecItemList"]} 1 #SPU尺寸参数 ${SpuMaterial} Get From List ${spuDetail["spuSpecItemList"]} 0 #SPU材质参数 ${SpuTechnology} Get From List ${spuDetail["spuSpecItemList"]} 2 #SPU工艺参数 ${spuSpecItemList} Create List Append To List ${spuSpecItemList} ${SpuMaterial} ${SpuSize} ${SpuTechnology} ${productMeasureDesc} Get From Dictionary ${quote} productMeasureDesc #计价尺寸 ${Long} Set Variable ${productMeasureDesc[0:3]} #截取长 ${Weight} Set Variable ${productMeasureDesc[4:7]} #截取宽 ${Material} Evaluate ${Long}*${Weight}/1000000*1.85*${quantity} #材料费 ${Technology} Evaluate round(${Long}*${Weight}/100*0.00003*${quantity},2) #工艺费 ${TotalPrice} Evaluate round(${Material}+${Technology},2) #总价 ${Price} Set Variable If '${TotalPrice}'<='125' 125 ${TotalPrice} #判断是否小于等于低消 ${SpuSizeNormal} Update Value To Json ${SpuSize} $.value 1-250*300 #spu正常计价 ${SpuSizeQuotation} Update Value To Json ${SpuSize} $.value 1-166*350 #spu低消计价 ${Data} Evaluate 3 #修改 ${SpuSizeNormal} Add Object To Json ${SpuSizeNormal} $.operateType ${Data} ${SpuSizeQuotation} Add Object To Json ${SpuSizeQuotation} $.operateType ${Data} #将对象data加入到json中 ${Operate} Get Value From Json ${SpuSizeQuotation} $.operateType ${Value} Get Value From Json ${spuDetail} $..value ${remark} Get Value From Json ${spuDetail} $..remark ${partNum} Get Value From Json ${spuDetail} $..partNum ${displayName} Get Value From Json ${spuDetail} $..displayName ${spuCategoryName} Get Value From Json ${spuDetail} $..spuCategoryName ${measureFormulaId} Get Value From Json ${spuDetail} $..measureFormulaId ${spuDetail} Evaluate demjson.encode(${spuDetail}) demjson #字典转换字符串 ${SpuSizeNormal} Evaluate demjson.encode(${SpuSizeNormal}) demjson ${SpuSizeQuotation} Evaluate demjson.encode(${SpuSizeQuotation}) demjson Should Be Equal ${amount} ${TotalPrice} Set Global Variable ${quote} Set Global Variable ${SpuSize} Set Global Variable ${spuDetail} Set Global Variable ${SpuMaterial} Set Global Variable ${spuCategoryId} Set Global Variable ${SpuTechnology} Set Global Variable ${SpuSizeNormal} Set Global Variable ${spuSpecItemList} Set Global Variable ${SpuSizeQuotation} Quotation #选择盒型参数-低消 Create Session factory ${yytClient} ${ClientHeader} ${spuQotation} Set Variable { \ \ \ \ "spuId":"${spuId}", \ \ \ \ "basic":false, \ \ \ \ "spuDetail":${spuDetail}, \ \ \ \ "operateRenderSpuItemList":[${SpuSizeQuotation}] } ${reps} POST On Session factory printing-packaging-factory-service/user/render/spu-detail ${spuQotation.encode('utf-8')} ${Amount} Get From Dictionary ${reps.json()['data']['quote']} amount #获取合计金额 ${quantity} Get From Dictionary ${reps.json()['data']['quote']} count #获取几家数量 ${productMeasureDesc} Get From Dictionary ${reps.json()['data']['quote']} productMeasureDesc #计价尺寸 ${Long} Set Variable ${productMeasureDesc[0:3]} #截取长 ${Weight} Set Variable ${productMeasureDesc[4:7]} #截取宽 ${Material} Evaluate ${Long}*${Weight}/1000000*1.85*${quantity} #材料费 ${Technology} Evaluate round(${Long}*${Weight}/100*0.00003*${quantity},2) #工艺费 ${TotalPrice} Evaluate round(${Material}+${Technology},2) #总价 ${Price} Set Variable If '${TotalPrice}'<='125' 125 ${TotalPrice} #比较价格 Should Be Equal As Numbers ${Amount} ${Price} Set Global Variable ${Price} Normal #选择盒型参数-正常计算 Create Session factory ${yytClient} ${ClientHeader} ${spuNormal} Set Variable { \ \ \ \ "spuId":"${spuId}", \ \ \ \ "basic":false, \ \ \ \ "spuDetail":${spuDetail}, \ \ \ \ "operateRenderSpuItemList":[${SpuSizeNormal}] } ${reps} POST On Session factory printing-packaging-factory-service/user/render/spu-detail ${spuNormal.encode('utf-8')} ${Amount} Get From Dictionary ${reps.json()['data']['quote']} amount #获取合计金额 ${quantity} Get From Dictionary ${reps.json()['data']['quote']} count #获取几家数量 ${productMeasureDesc} Get From Dictionary ${reps.json()['data']['quote']} productMeasureDesc #计价尺寸 ${Long} Set Variable ${productMeasureDesc[0:3]} #截取长 ${Weight} Set Variable ${productMeasureDesc[4:7]} #截取宽 ${Material} Evaluate ${Long}*${Weight}/1000000*1.85*${quantity} #材料费 ${Technology} Evaluate round(${Long}*${Weight}/100*0.00003*${quantity},2) #工艺费 ${TotalPrice} Evaluate round(${Material}+${Technology},2) #总价 ${Price} Set Variable If '${TotalPrice}'<='125' 125 ${TotalPrice} #比较价格 Log ${Price} Should Be Equal As Numbers ${Amount} ${Price} Set Global Variable ${Price} ConfirmOrder #确认下单页面 #查询钱包 Create Session factory ${uecClient} ${ClientHeader} ${reps} GET On Session factory wallet-service/user/get/wallet-account ${amountGift} Get From Dictionary ${reps.json()['data']} amountGift #赠送金额 ${totalBalance} Get From Dictionary ${reps.json()['data']} totalBalance #总金额 ${frozenBalance} Get From Dictionary ${reps.json()['data']} frozenBalance #冻结金额 ${availableBalance} Get From Dictionary ${reps.json()['data']} availableBalance #可用金额 Set Global Variable ${amountGift} Set Global Variable ${totalBalance} Set Global Variable ${frozenBalance} Set Global Variable ${availableBalance} #获取抬头数据 Create Session factory ${yytClient} ${ClientHeader} ${reps} Get On Session factory printing-package-mall-service/user/page/invoice-title params=pageNum=1&pageSize=100 ${Title} Get From Dictionary ${reps.json()['data']} records #获取发票抬头列表 ${InvoiceTitle} Evaluate random.choice(${Title}) random Set Global Variable ${InvoiceTitle} DeliveryOrder #获取送货地址列表 Create Session factory ${yytClient} ${ClientHeader} ${reps} GET On Session factory printing-package-mall-service/user/page/user-shipping-address params=pageNum=1&pageSize=100 ${AddressList} Get From Dictionary ${reps.json()['data']} records #地址列表 ${Address} Evaluate random.choice(${AddressList}) random #随机获取送货地址 ${CityId} Get From Dictionary ${Address} cityId #市id ${DistrictId} Get From Dictionary ${Address} districtId #区id ${ProvinceId} Get From Dictionary ${Address} provinceId #省id Set Global Variable ${CityId} Set Global Variable ${DistrictId} Set Global Variable ${ProvinceId} #送货-获取税点 ${reps} GET On Session factory printing-package-mall-service/user/get/sale-order/other-fees-config params=factoryId=${Fid}&orgId=${organizationId}&deliveryAddressProvinceId=${ProvinceId}&deliveryAddressCityId=${CityId}&deliveryAddressDistrictId=${DistrictId} ${Charges} Get From Dictionary ${reps.json()['data']} logisticsCharges #物流费用 ${InvoiceList} Get From Dictionary ${reps.json()['data']} enterpriseInvoiceList #获取税点信息 FOR ${Invoice} IN @{InvoiceList} ${tax} Get From Dictionary ${Invoice} tax #税点 ${type} Get From Dictionary ${Invoice} type #开票类型 END ${InvoiceData} Set Variable If '${type}'=='1' or '${type}'=='2' ${tax} 0 ${Charges} Set Variable If '${Charges}'=='${None}' 0 ${Charges} Set Global Variable ${Charges} Set Global Variable ${InvoiceData} #计算合计金额 ${Price} Evaluate 1250 #商品金额 ${InvoicePrice} Evaluate round((${Price}+${Charges})*${InvoiceData},2) #开票费用 ${TotalAmount} Evaluate round(${Price}+${InvoicePrice},2) #合计金额 Set Global Variable ${Price} Set Global Variable ${InvoicePrice} Set Global Variable ${TotalAmount} #获取优惠券列表 Create Session factory ${uecClient} ${ClientHeader} ${reps} Get On Session factory coupon-service/user/list/coupon/current-order-usable params=businessType=2&amount=${TotalAmount} ${CouponList} Get From Dictionary ${reps.json()['data']} currentOrderUsableCouponList #可用优惠券信息 ${111} Evaluate type(${CouponList}) ${CouponPrice} Run Keyword If '${CouponList}'=='[]' Evaluate 0 ... ELSE Run Keyword Coupon ${TotalPrice} Evaluate round(${Price}+${InvoicePrice}-${CouponPrice}+${Charges},2) #下单金额=商品金额+开票费用+物流-优惠券 PickupOrder #自提 ${LocationCityId} Set Variable 120100 ${LocationDistrictId} Set Variable 120102 ${LocationProvinceId} Set Variable 120000 Set Global Variable ${LocationCityId} Set Global Variable ${LocationDistrictId} Set Global Variable ${LocationProvinceId} #自提-获取税点 Create Session factory ${yytClient} ${ClientHeader} ${reps} GET On Session factory printing-package-mall-service/user/get/sale-order/other-fees-config params=factoryId=${Fid}&orgId=${organizationId}&deliveryAddressProvinceId=${LocationProvinceId}&deliveryAddressCityId=${LocationCityId}&deliveryAddressDistrictId=${LocationDistrictId} ${Charges} Get From Dictionary ${reps.json()['data']} logisticsCharges #物流费用 ${InvoiceList} Get From Dictionary ${reps.json()['data']} enterpriseInvoiceList #获取税点信息 FOR ${Invoice} IN @{InvoiceList} ${tax} Get From Dictionary ${Invoice} tax #税点 ${type} Get From Dictionary ${Invoice} type #开票类型 END ${LocationInvoiceData} Set Variable If '${type}'=='1' ${tax} '${type}'=='2' ${tax} 0 Set Global Variable ${Charges} Set Global Variable ${LocationInvoiceData} #计算合计金额 ${Amount} Evaluate 125 #商品金额 ${InvoicePrice} Evaluate (${Amount}+${Charges})*${LocationInvoiceData} #开票费用 ${TotalAmount} Evaluate ${Amount}+${InvoicePrice} #合计金额 Set Global Variable ${Amount} Set Global Variable ${InvoicePrice} Set Global Variable ${TotalAmount} #获取优惠券列表 Create Session factory ${uecClient} ${ClientHeader} ${reps} Get On Session factory coupon-service/user/list/coupon/current-order-usable params=businessType=2&amount=${TotalAmount} ${CouponList} Get From Dictionary ${reps.json()['data']} currentOrderUsableCouponList #可用优惠券信息 ${CouponData} Run Keyword If '${CouponList}'=='[]' Evaluate 0 ... ElSE Run Keyword Coupon *** Keywords *** Coupon #获取优惠券列表 Create Session factory ${uecClient} ${ClientHeader} ${reps} Get On Session factory coupon-service/user/list/coupon/current-order-usable params=businessType=2&amount=${TotalAmount} ${CouponList} Get From Dictionary ${reps.json()['data']} currentOrderUsableCouponList #可用优惠券信息 ${CouponData} Evaluate random.choice(${CouponList}) random ${couponType} Get From Dictionary ${CouponData} couponType #优惠类型,3:折扣,2:满减 ${discountAmount} Get From Dictionary ${CouponData} discountAmount #优惠金额/折扣 ${orderAmountLowerLimit} Get From Dictionary ${CouponData} orderAmountLowerLimit #优惠条件金额 ${discountAmountUpperLimit} Get From Dictionary ${CouponData} discountAmountUpperLimit #优惠封顶金额 ${CouponPrice} Run Keyword If '${couponType}'==3 Evaluate ${orderAmountLowerLimit}*(1-${discountAmount}) ... ELSE Evaluate ${discountAmount} ${Coupon} Set Variable If '${CouponPrice}'>'${discountAmountUpperLimit}' ${discountAmountUpperLimit} ${CouponPrice} Set Global Variable ${Coupon}