@ -1,5 +1,7 @@
*** Settings ***
Documentation 拼版下单
Test Teardown Run Keyword If Test Failed Fatal Error
Test Timeout
Library urllib3
Library Collections
Library RequestsLibrary
@ -7,6 +9,8 @@ Library DatabaseLibrary
Library JSONLibrary
Library demjson
Library HttpLibrary
Library HttpLibrary.HTTP
Library String
*** Test Cases ***
spuDetail
@ -52,11 +56,11 @@ spuDetail
${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) #工艺费
${Technology} Evaluate round((${Long}+${Weight})/1000*2*18*2.5+(0.08*${quantity}/4) ,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*35 0 #spu低消计价
${SpuSizeNormal} Update Value To Json ${SpuSize} $.value 1-211*256 #spu正常计价
${SpuSizeQuotation} Update Value To Json ${SpuSize} $.value 1-136*30 0 #spu低消计价
${Data} Evaluate 3 #修改
${SpuSizeNormal} Add Object To Json ${SpuSizeNormal} $.operateType ${Data}
${SpuSizeQuotation} Add Object To Json ${SpuSizeQuotation} $.operateType ${Data} #将对象data加入到json中
@ -70,6 +74,7 @@ spuDetail
${spuDetail} Evaluate demjson.encode(${spuDetail}) demjson #字典转换字符串
${SpuSizeNormal} Evaluate demjson.encode(${SpuSizeNormal}) demjson
${SpuSizeQuotation} Evaluate demjson.encode(${SpuSizeQuotation}) demjson
log ${spuDetail}
Should Be Equal ${amount} ${TotalPrice}
Set Global Variable ${quote}
Set Global Variable ${SpuSize}
@ -86,17 +91,52 @@ 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 #计价尺寸
${DATA} Get From Dictionary ${reps.json()} data
#${DATA} Update Value To Json ${DATA} $..value null #修改value字段key为null
#${DATA} Update Value To Json ${DATA} $..remark null #修改remark字段key为null
#${DATA} Update Value To Json ${DATA} $..cutNum null
#${DATA} Update Value To Json ${DATA} $..partNum null #修改partNum字段key为null
#${DATA} Update Value To Json ${DATA} $..attribute null
#${DATA} Update Value To Json ${DATA} $..nodeIdList null
#${DATA} Update Value To Json ${DATA} $..displayName null #修改displayName字段key为null
#${DATA} Update Value To Json ${DATA} $..spuSpecItemType null
#${DATA} Update Value To Json ${DATA} $..spuCategoryName null #修改spuCategoryName字段key为null
#${DATA} Update Value To Json ${DATA} $..measureFormulaId null #修改measureFormulaId字段key为null
${Quote} Get From Dictionary ${reps.json()['data']} quote #盒型基础参数
${desc} Get From Dictionary ${Quote} desc #盒型报价参数
${Amount} Get From Dictionary ${Quote} amount #获取合计金额
${quantity} Get From Dictionary ${Quote} count #获取计价数量
${productId} Get From Dictionary ${Quote['spuProductQuoteList'][0]} spuId #盒型id
${unitprice} Evaluate ${Amount}/${quantity} #计算单价
${productName} Get From Dictionary ${Quote['spuProductQuoteList'][0]} name #盒型name
${productArea} Get From Dictionary ${Quote} productArea #盒型报价尺寸
${productProcessDesc} Get From Dictionary ${Quote} productProcessDesc #盒型报价工艺
${productMaterialDesc} Get From Dictionary ${Quote} productMaterialDesc #盒型报价材质
${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) #工艺费
${Technology} Evaluate round((${Long}+${Weight})/1000*2*18*2.5+(0.08*${quantity}/8) ,2) #工艺费
${TotalPrice} Evaluate round(${Material}+${Technology},2) #总价
${Price} Set Variable If '${TotalPrice}'<='125' 125 ${TotalPrice} #比较价格
${DATA} Evaluate demjson.encode(${DATA}) demjson
${DATA} Replace String ${DATA} None null
${DATA} Replace String ${DATA} "null" null
${DATA} Convert Json To String ${DATA}
Should Be Equal As Numbers ${Amount} ${Price}
Set Global Variable ${desc}
Set Global Variable ${DATA}
Set Global Variable ${Price}
Set Global Variable ${Amount}
Set Global Variable ${quantity}
Set Global Variable ${productId}
Set Global Variable ${unitprice}
Set Global Variable ${TotalPrice}
Set Global Variable ${productName}
Set Global Variable ${productArea}
Set Global Variable ${productProcessDesc}
Set Global Variable ${productMaterialDesc}
Set Global Variable ${productMeasureDesc}
Normal
#选择盒型参数-正常计算
@ -109,7 +149,7 @@ Normal
${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) #工艺费
${Technology} Evaluate round((${Long}+${Weight})/1000*2*18*2.5+(0.08*${quantity}/4) ,2) #工艺费
${TotalPrice} Evaluate round(${Material}+${Technology},2) #总价
${Price} Set Variable If '${TotalPrice}'<='125' 125 ${TotalPrice} #比较价格
Log ${Price}
@ -143,11 +183,25 @@ DeliveryOrder
${AddressList} Get From Dictionary ${reps.json()['data']} records #地址列表
${Address} Evaluate random.choice(${AddressList}) random #随机获取送货地址
${CityId} Get From Dictionary ${Address} cityId #市id
${cityName} Get From Dictionary ${Address} cityName #市名
${AddressId} Get From Dictionary ${Address} id #地址id
${DistrictId} Get From Dictionary ${Address} districtId #区id
${ProvinceId} Get From Dictionary ${Address} provinceId #省id
${districtName} Get From Dictionary ${Address} districtName #区名
${provinceName} Get From Dictionary ${Address} provinceName #省名
${AddressDetail} Get From Dictionary ${Address} locDetails #送货详细地址
${consigneeName} Get From Dictionary ${Address} consigneeName #送货联系人
${consigneeMobile} Get From Dictionary ${Address} consigneeMobile #送货联系电话
Set Global Variable ${CityId}
Set Global Variable ${cityName}
Set Global Variable ${AddressId}
Set Global Variable ${DistrictId}
Set Global Variable ${ProvinceId}
Set Global Variable ${districtName}
Set Global Variable ${provinceName}
Set Global Variable ${AddressDetail}
Set Global Variable ${consigneeName}
Set Global Variable ${consigneeMobile}
#送货-获取税点
${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 #物流费用
@ -160,11 +214,29 @@ DeliveryOrder
${Charges} Set Variable If '${Charges}'=='${None}' 0 ${Charges}
Set Global Variable ${Charges}
Set Global Variable ${InvoiceData}
#获取开票信息
${reps} GET On Session factory printing-package-mall-service/user/page/invoice-title params=pageNum=1&pageSize=100
${records} Get From Dictionary ${reps.json()['data']} records #发票抬头
${InvoiceList} Evaluate random.choice(${records}) random
${invoiceTitleId} Get From Dictionary ${InvoiceList} id #发票id
${invoicingOpenAccount} Get From Dictionary ${InvoiceList} bankAccountNumber #银行账号
${invoicingEnterpriseName} Get From Dictionary ${InvoiceList} enterpriseName #企业名称
${invoicingEnterprisePhone} Get From Dictionary ${InvoiceList} registerPhone #联系电话
${invoicingEnterpriseAddress} Get From Dictionary ${InvoiceList} registerAddress #注册地址
${taxpayerIdentificationNumber} Get From Dictionary ${InvoiceList} enterpriseTaxNumber #公司税号
${invoicingEnterpriseOpeningBank} Get From Dictionary ${InvoiceList} accountOpeningBank #开户行
Set Global Variable ${invoiceTitleId}
Set Global Variable ${invoicingOpenAccount}
Set Global Variable ${invoicingEnterpriseName}
Set Global Variable ${invoicingEnterprisePhone}
Set Global Variable ${invoicingEnterpriseAddress}
Set Global Variable ${taxpayerIdentificationNumber}
Set Global Variable ${invoicingEnterpriseOpeningBank}
#计算合计金额
${Price} Evaluate 1250 #商品金额
# ${Price} Evaluate 1250 #商品金额
${InvoicePrice} Evaluate round((${Price}+${Charges})*${InvoiceData},2) #开票费用
${TotalAmount} Evaluate round(${Price}+${InvoicePrice},2) #合计金额
Set Global Variable ${Price}
${TotalAmount} Evaluate round(${Price}+${InvoicePrice}+${Charges} ,2) #合计金额
# Set Global Variable ${Price}
Set Global Variable ${InvoicePrice}
Set Global Variable ${TotalAmount}
#获取优惠券列表
@ -207,8 +279,19 @@ PickupOrder
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
${CouponData} Run Keyword If '${CouponList}'=='[]' Evaluate 0 ElSE Run Keyword Coupon
CreateOrder
#确认订单
Create Session factory ${yytClient} ${ClientHeader}
${OrderData} Set Variable { \ \ \ \ "remark":"", \ \ \ \ "totalAmount":"${TotalAmount}", \ \ \ \ "taxFee":"${InvoicePrice}", \ \ \ \ "taxRate":"${InvoiceData}", \ \ \ \ "logisticsFee":"${Charges}", \ \ \ \ "supplierFactoryId":"${factoryId}", \ \ \ \ "supplierOrgId":"${orgId}", \ \ \ \ "customerContactsName":"${consigneeName}", \ \ \ \ "customerContactsPhone":"${consigneeMobile}", \ \ \ \ "deliveryAddressCityId":"${CityId}", \ \ \ \ "deliveryAddressCityName":"${cityName}", \ \ \ \ "deliveryAddressDistrictId":"${DistrictId}", \ \ \ \ "deliveryAddressDistrictName":"${districtName}", \ \ \ \ "shippingAddressId":"${AddressId}", \ \ \ \ "deliveryAddressLocDetails":"${AddressDetail}", \ \ \ \ "deliveryAddressProvinceId":"${ProvinceId}", \ \ \ \ "deliveryAddressProvinceName":"${provinceName}", \ \ \ \ "packingMethod":1, \ \ \ \ "salesOrderInvoice":{ \ \ \ \ \ \ \ \ "type":1, \ \ \ \ \ \ \ \ "invoiceTitleId":"${invoiceTitleId}", \ \ \ \ \ \ \ \ "entityType":"1", \ \ \ \ \ \ \ \ "invoicingEnterpriseAddress":"${invoicingEnterpriseAddress}", \ \ \ \ \ \ \ \ "invoicingEnterpriseName":"${invoicingEnterpriseName}", \ \ \ \ \ \ \ \ "invoicingEnterpriseOpeningBank":"${invoicingEnterpriseOpeningBank}", \ \ \ \ \ \ \ \ "invoicingEnterprisePhone":"${invoicingEnterprisePhone}", \ \ \ \ \ \ \ \ "invoicingOpenAccount":"${invoicingOpenAccount}", \ \ \ \ \ \ \ \ "taxpayerIdentificationNumber":"${taxpayerIdentificationNumber}" \ \ \ \ }, \ \ \ \ "salesOrderItemProduct":{ \ \ \ \ \ \ \ \ "productName":"${productName}", \ \ \ \ \ \ \ \ "productId":"${productId}", \ \ \ \ \ \ \ \ "amount":"${Amount}", \ \ \ \ \ \ \ \ "quantity":"${quantity}", \ \ \ \ \ \ \ \ "price":"${unitprice}", \ \ \ \ \ \ \ \ "productImgUrl":"${url}", \ \ \ \ \ \ \ \ "factoryId":"${factoryId}", \ \ \ \ \ \ \ \ "orgId":"${orgId}", \ \ \ \ \ \ \ \ "orderSource":1, \ \ \ \ \ \ \ \ "desc":"${desc}", \ \ \ \ \ \ \ \ "productMeasureDesc":"${productArea}", \ \ \ \ \ \ \ \ "productMaterialDesc":"${productMaterialDesc}", \ \ \ \ \ \ \ \ "productProcessDesc":"${productProcessDesc}", \ \ \ \ \ \ \ \ "copyFromId":null, \ \ \ \ \ \ \ \ "productSpecDetailJson":${DATA}, \ \ \ \ \ \ \ \ "productSpecDetail":"${desc}" \ \ \ \ }, \ \ \ \ "orderSource":1 }
log ${OrderData}
${reps} POST On Session factory printing-package-mall-service/user/create/sales-order ${OrderData.encode('utf-8')}
${OrderId} Get From Dictionary ${reps.json()} data #订单id
TestCase
${Data} Set Variable { \ \ \ \ \ \ \ \ "amount":0.28, \ \ \ \ \ \ \ \ "detailItemName":"测试", \ \ \ \ \ \ \ \ "discountAmount":0, \ \ \ \ \ \ \ \ "formula":"None", \ \ \ \ \ \ \ \ "nodeIdList":"None", \ \ \ \ \ \ \ \ "originalAmount":0.28, \ \ \ \ \ \ \ \ "settlementName":"小小", \ \ \ \ \ \ \ \ "settlementNameEnum":1, \ \ \ \ \ \ \ \ "spuSpecItemType":"None", \ \ \ \ \ \ \ \ "topic":"开心麻花" }
${Value} Replace String ${Data} None null
*** Keywords ***
Coupon