Browse Source

新增会员资费、纸品品类、商品接口!

master
梁金满 5 years ago
parent
commit
c381ede415
65 changed files with 2917 additions and 43 deletions
  1. 5
      httprunner/.gitignore
  2. 2
      httprunner/api/login/admin_login_password.yml
  3. 18
      httprunner/api/login/admin_login_password1.yml
  4. 10
      httprunner/api/login/ldap_login_password.yml
  5. 51
      httprunner/api/product/app_product_create.yml
  6. 17
      httprunner/api/product/app_product_delete.yml
  7. 15
      httprunner/api/product/app_product_get.yml
  8. 51
      httprunner/api/product/app_product_update.yml
  9. 27
      httprunner/api/shop/app_shop_edit.yml
  10. 15
      httprunner/api/shop/app_shop_getinfo.yml
  11. 27
      httprunner/api/shop/app_shop_perfect.yml
  12. 27
      httprunner/api/store_paper/admin_store_create_paper.yml
  13. 15
      httprunner/api/store_paper/admin_store_delete_paper.yml
  14. 14
      httprunner/api/store_paper/admin_store_get_paperCategoryList.yml
  15. 27
      httprunner/api/store_paper/admin_store_update_paper.yml
  16. 23
      httprunner/cases/case.yml
  17. 4
      httprunner/cases/consignment_process/admin_proxysell_update_reservation.yml
  18. 11
      httprunner/cases/login/ldap_login_password.yml
  19. 1
      httprunner/debugtalk.py
  20. 9
      httprunner/steps/login/ldap_login_password.yml
  21. 2
      httprunner/steps/step.yml
  22. 2
      zhitongbao/.env
  23. 0
      zhitongbao/api/A_list_of_the_query.yml
  24. 0
      zhitongbao/api/Employees/ldap_Employee_details.yml
  25. 0
      zhitongbao/api/Employees/ldap_Employees_list.yml
  26. 0
      zhitongbao/api/Employees/ldap_Employees_update.yml
  27. 30
      zhitongbao/api/Member/Member_add.yml
  28. 13
      zhitongbao/api/Member/Member_delete.yml
  29. 11
      zhitongbao/api/Member/Member_list.yml
  30. 30
      zhitongbao/api/Member/Member_update.yml
  31. 0
      zhitongbao/api/Menu/ldap_Menu_add.yml
  32. 0
      zhitongbao/api/Menu/ldap_Menu_delete.yml
  33. 0
      zhitongbao/api/Menu/ldap_Menu_list.yml
  34. 0
      zhitongbao/api/Menu/ldap_Menu_update.yml
  35. 0
      zhitongbao/api/ldap_department_list.yml
  36. 0
      zhitongbao/api/login.yml
  37. 0
      zhitongbao/api/login/app_login.yml
  38. 15
      zhitongbao/api/login/ldap_QN_login.yml
  39. 0
      zhitongbao/api/login/ldap_login.yml
  40. 0
      zhitongbao/api/login/ldap_logout.yml
  41. 4
      zhitongbao/api/notification.yml
  42. 0
      zhitongbao/api/product/product_add.yml
  43. 0
      zhitongbao/api/product/product_delete.yml
  44. 0
      zhitongbao/api/product/product_list.yml
  45. 0
      zhitongbao/api/product/product_list_b.yml
  46. 0
      zhitongbao/api/product/product_update.yml
  47. 0
      zhitongbao/api/product/product_update_status.yml
  48. 0
      zhitongbao/api/role/ldap_roleMenu_list.yml
  49. 0
      zhitongbao/api/role/ldap_role_add.yml
  50. 0
      zhitongbao/api/role/ldap_role_list.yml
  51. 0
      zhitongbao/api/role/ldap_role_mass_update.yml
  52. 0
      zhitongbao/api/role/ldap_role_update.yml
  53. 0
      zhitongbao/debugtalk.py
  54. 492
      zhitongbao/reports/1600134084.html
  55. 492
      zhitongbao/reports/1600134497.html
  56. 516
      zhitongbao/reports/1600134541.html
  57. 492
      zhitongbao/reports/1600134565.html
  58. 492
      zhitongbao/reports/1600134650.html
  59. 0
      zhitongbao/testcases/demo_testcase.yml
  60. 0
      zhitongbao/testcases/ldap_Menu.yml
  61. 0
      zhitongbao/testcases/ldap_token.yml
  62. 0
      zhitongbao/testcases/product.yml
  63. 0
      zhitongbao/testcases/product_add.yml
  64. 0
      zhitongbao/testsuites/demo_testsuite.yml
  65. 0
      zhitongbao/testsuites/product/product_add.yml

5
httprunner/.gitignore

@ -0,0 +1,5 @@
reports/*
__pycache__/*
*.pyc
.python-version
logs/*

2
httprunner/api/login/admin_login_password.yml

@ -15,4 +15,4 @@ request:
rememberMe: $rememberMe
validate:
- eq: ["status_code", 200]
- {"check": "content.msg", "comparator": "contains", "expect": "success"}
- {"check": "content.msg", "comparator": "contains", "expect": "success"}

18
httprunner/api/login/admin_login_password1.yml

@ -1,18 +0,0 @@
name: 销售账号登录
variables:
phone: 13060994305
password: 9602BF7A8C5FEAB91385D1BB9EA70DF0
rememberMe: null
base_url: ${ENV(BURL)}
request:
url: /login/admin/adminLogin
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
json:
phone: $phone
password: $password
rememberMe: $rememberMe
validate:
- eq: ["status_code", 200]
- {"check": "content.msg", "comparator": "contains", "expect": "success"}

10
httprunner/api/login/ldap_login_password.yml

@ -1,4 +1,7 @@
name: ldap登录
variables:
username: liangjinman@qniao.cn
password: qn123456
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/login
@ -7,8 +10,7 @@ request:
Content-Type: "application/x-www-form-urlencoded"
X-APP-ID: "1"
data:
username: liangjinman@qniao.cn
password: qn123456
username: $username
password: $password
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "eq", "expect": "登陆成功"}
- eq: ["status_code", 200]

51
httprunner/api/product/app_product_create.yml

@ -0,0 +1,51 @@
name: app用户创建商品
variables:
apptoken: ${ENV(ATOKEN)}
bidType: 0
biddingInterval: 0
coverImgUrl: "string"
description: "string"
dopantRate: 0
firstCategoryId: 0
imgList: ["string"]
initialUnitPrice: 0
locCityId: 0
locDetails: "string"
locDistrictId: 0
locProvinceId: 0
lowestNum: 0
secondCategoryId: 0
stock: 0
unitPrice: 0
videoUrl: "string"
waterRate: 0
base_url: ${ENV(AURL)}
request:
url: /recycle-service/create/product
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
json:
bidType: $bidType
biddingInterval: $biddingInterval
coverImgUrl: $coverImgUrl
description: $description
dopantRate: $dopantRate
firstCategoryId: $firstCategoryId
imgList: $imgList
initialUnitPrice: $initialUnitPrice
locCityId: $locCityId
locDetails: $locDetails
locDistrictId: $locDistrictId
locProvinceId: $locProvinceId
lowestNum: $lowestNum
secondCategoryId: $secondCategoryId
stock: $stock
unitPrice: $unitPrice
videoUrl: $videoUrl
waterRate: $waterRate
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

17
httprunner/api/product/app_product_delete.yml

@ -0,0 +1,17 @@
name: app用户删除商品
variables:
apptoken: ${ENV(ATOKEN)}
productId: 0
base_url: ${ENV(AURL)}
request:
url: /recycle-service/delete/product
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
json:
productId: $productId
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

15
httprunner/api/product/app_product_get.yml

@ -0,0 +1,15 @@
name: app用户查询商品
variables:
apptoken: ${ENV(ATOKEN)}
productId: 0
base_url: ${ENV(AURL)}
request:
url: /recycle-service/get/product/$productId
method: GET
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

51
httprunner/api/product/app_product_update.yml

@ -0,0 +1,51 @@
name: app用户修改商品
variables:
apptoken: ${ENV(ATOKEN)}
bidType: 0
biddingInterval: 0
coverImgUrl: "string"
description: "string"
dopantRate: 0
firstCategoryId: 0
imgList: ["string"]
initialUnitPrice: 0
locCityId: 0
locDetails: "string"
locDistrictId: 0
locProvinceId: 0
lowestNum: 0
secondCategoryId: 0
stock: 0
unitPrice: 0
videoUrl: "string"
waterRate: 0
base_url: ${ENV(AURL)}
request:
url: /recycle-service/update/product
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
json:
bidType: $bidType
biddingInterval: $biddingInterval
coverImgUrl: $coverImgUrl
description: $description
dopantRate: $dopantRate
firstCategoryId: $firstCategoryId
imgList: $imgList
initialUnitPrice: $initialUnitPrice
locCityId: $locCityId
locDetails: $locDetails
locDistrictId: $locDistrictId
locProvinceId: $locProvinceId
lowestNum: $lowestNum
secondCategoryId: $secondCategoryId
stock: $stock
unitPrice: $unitPrice
videoUrl: $videoUrl
waterRate: $waterRate
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

27
httprunner/api/shop/app_shop_edit.yml

@ -0,0 +1,27 @@
name: app用户修改店铺信息
variables:
apptoken: ${ENV(ATOKEN)}
contactPhoneNo: 18219557422
coverImgUrlList: ["http://medou.oss-cn-shenzhen.aliyuncs.com/bird_user/20090917463455009.jpg"]
locDetails: 车陂
locDistrictId: 440106
contacts: 测试
name: 测试店铺
base_url: ${ENV(AURL)}
request:
url: /recycle-service/edit/store-information
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
json:
contactPhoneNo: $contactPhoneNo
coverImgUrlList: $coverImgUrlList
locDetails: $locDetails
locDistrictId: $locDistrictId
contacts: $contacts
name: $name
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

15
httprunner/api/shop/app_shop_getinfo.yml

@ -0,0 +1,15 @@
name: app用户完善店铺
variables:
apptoken: ${ENV(ATOKEN)}
storeId: 18219557422
base_url: ${ENV(AURL)}
request:
url: /recycle-service/get/store-information/$storeId
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

27
httprunner/api/shop/app_shop_perfect.yml

@ -0,0 +1,27 @@
name: app用户完善店铺
variables:
apptoken: ${ENV(ATOKEN)}
contactPhoneNo: 18219557422
coverImgUrlList: ["http://medou.oss-cn-shenzhen.aliyuncs.com/bird_user/20090917463455009.jpg"]
locDetails: 车陂
locDistrictId: 440106
contacts: 测试
name: 测试店铺
base_url: ${ENV(AURL)}
request:
url: /recycle-service/update/store-information
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $apptoken
json:
contactPhoneNo: $contactPhoneNo
coverImgUrlList: $coverImgUrlList
locDetails: $locDetails
locDistrictId: $locDistrictId
contacts: $contacts
name: $name
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

27
httprunner/api/store_paper/admin_store_create_paper.yml

@ -0,0 +1,27 @@
name: 后台管理员创建纸品品类
variables:
token: ${ENV(LDAPTOKEN)}
description: "string"
enable: 0
id: 0
level: 0
name: "string"
parentId: 0
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/store/create/paper
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $token
json:
description: $description
enable: $enable
id: $id
level: $level
name: $name
parentId: $parentId
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

15
httprunner/api/store_paper/admin_store_delete_paper.yml

@ -0,0 +1,15 @@
name: 后台管理员启用/禁用纸品品类
variables:
token: ${ENV(LDAPTOKEN)}
paperId: "string"
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/store/update/paper-status/$paperId
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $token
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

14
httprunner/api/store_paper/admin_store_get_paperCategoryList.yml

@ -0,0 +1,14 @@
name: 后台管理员查询纸品品类列表
variables:
token: ${ENV(LDAPTOKEN)}
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/store/get/paperCategoryList
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $token
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

27
httprunner/api/store_paper/admin_store_update_paper.yml

@ -0,0 +1,27 @@
name: 后台管理员编辑纸品品类
variables:
token: ${ENV(LDAPTOKEN)}
description: "string"
enable: 0
id: 0
level: 0
name: "string"
parentId: 0
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/store/update/paper
method: POST
headers:
Content-Type: "application/json;charset=UTF-8"
X-APP-ID: "1"
Authorization: $token
json:
description: $description
enable: $enable
id: $id
level: $level
name: $name
parentId: $parentId
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "contains", "expect": "successful"}

23
httprunner/cases/case.yml

@ -1,18 +1,15 @@
config:
name: "demo testsuite"
variables:
device_sn: "XYZ"
base_url: "http://127.0.0.1:5000"
name: "testsuites"
base_url: "http://127.0.0.1:80"
testcases:
-
name: call demo_testcase with data 1
testcase: path/to/step.yml
variables:
device_sn: $device_sn
name: case one
testcase: path/to/step1.yml
parameters:
-
name: call demo_testcase with data 2
testcase: path/to/step.yml
variables:
device_sn: $device_sn
name: case two
testcase: path/to/step2.yml
parameters:

4
httprunner/cases/consignment_process/admin_proxysell_update_reservation.yml

@ -4,7 +4,7 @@ testcases:
testcase: steps/consignment_process/admin_proxysell_update_reservation.yml
parameters:
- title-millSupplierId-scrapeOrderId-code-message:
- ["上传预约信息错误的纸厂供应商id","12345","501462195926863872",500,"No message available"]
- ["上传预约信息错误的订单号","498227745344589800","12345",500,"Internal Server Error"]
- ["上传预约信息错误的纸厂供应商id","12345","501462195926863872",200,"No message available"]
- ["上传预约信息错误的订单号","498227745344589800","12345",200,"No message available"]
- ["上传预约信息纸厂供应商id为空","","501462195926863872",200,"millSupplierId:纸厂供应商不能为空"]
- ["上传预约信息订单号为空","498227745344589800","",200,"scrapeOrderId:订单id不能为空"]

11
httprunner/cases/login/ldap_login_password.yml

@ -0,0 +1,11 @@
testcases:
-
name: ldap密码登录测试套件
testcase: steps/login/ldap_login_password.yml
parameters:
- title-username-password-code-message:
- ["登录成功","liangjinman@qniao.cn","qn123456",200,"登陆成功"]
- ["账号错误","admin","qn123456",200,"20003"]
- ["账号为空","","qn123456",200,"20001"]
- ["密码错误","liangjinman@qniao.cn","12345",200,"20003"]
- ["密码为空","liangjinman@qniao.cn","",200,"20002"]

1
httprunner/debugtalk.py

@ -1 +0,0 @@

9
httprunner/steps/login/ldap_login_password.yml

@ -0,0 +1,9 @@
config:
name: ldap密码登录
teststeps:
-
name: $title
api: api/login/ldap_login_password.yml
validate:
- eq: ["status_code", $code]
- {"check": "content.message", "comparator": "contains", "expect": $message}

2
httprunner/steps/step.yml

@ -1,7 +1,5 @@
config:
name: 依赖上个接口
variables:
base_url: https://api-test.qniao.cn/recycle-service
teststeps:
-
name: 第一个接口

zhitongbao/zhitongbao/.env → zhitongbao/.env

@ -3,5 +3,7 @@ URL=http://api-test.qniao.cn
BURL=http://api-admin-test.qniao.cn
TOKEN=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJhY2NvdW50Tm9uRXhwaXJlZFwiOnRydWUsXCJhY2NvdW50Tm9uTG9ja2VkXCI6dHJ1ZSxcImF1dGhvcml0aWVzXCI6W10sXCJjb21wYW55SWRcIjowLFwiY3JlZGVudGlhbHNOb25FeHBpcmVkXCI6dHJ1ZSxcImVuYWJsZWRcIjp0cnVlLFwicGFzc3dvcmRcIjpcIlwiLFwicm9sZUlkXCI6MzcsXCJyb2xlTmFtZXNcIjpbXSxcInVzZXJJZFwiOjIxMixcInVzZXJuYW1lXCI6XCLlvKDlsbFcIn0iLCJjcmVhdGVkIjoxNTk5Mjc4NTY3NTYyLCJleHAiOjE1OTk4ODMzNjd9.t0g8YOGp7PJ7svjGSNyBpa3XXF0TDdJDJNHWOUtvKjDqmFL_wmg8XOnNAE80pEJpTAgHRP4QF2N5RSNpAdqozg
LDAPTOKEN=Token a4289fbdfb3422e76232906b1ccdffb7
QNURL=https://api-admin.qniao.cn
QNTOKEN=Token a4289fbdfb3422e76232906b1ccdffb7
APPTOKEN=/yDwpvROT9aG3+EAFtz5mWwBM16YhZpAhpVUx6OkLxJ+c8uvEgM7u9E4/vH6Wc3Y
APPUSERID=485090339129004032

zhitongbao/zhitongbao/api/A_list_of_the_query.yml → zhitongbao/api/A_list_of_the_query.yml

zhitongbao/zhitongbao/api/Employees/ldap_Employee_details.yml → zhitongbao/api/Employees/ldap_Employee_details.yml

zhitongbao/zhitongbao/api/Employees/ldap_Employees_list.yml → zhitongbao/api/Employees/ldap_Employees_list.yml

zhitongbao/zhitongbao/api/Employees/ldap_Employees_update.yml → zhitongbao/api/Employees/ldap_Employees_update.yml

30
zhitongbao/api/Member/Member_add.yml

@ -0,0 +1,30 @@
name: 新增会员
variables:
bidPrice: 1000
days: 30
description: 新人首充优惠大大~~
enable: 1
icon: http://medou.oss-cn-shenzhen.aliyuncs.com/saas/20200624155949.png
realPrice: 100
sellStrategy: common
title:
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/member/new/member-expense-config
method: POST
headers:
Content-Type: "application/json"
X-APP-ID: "470236309865238555"
Authorization: ${ENV(LDAPTOKEN)}
json:
bidPrice: $bidPrice
days: $days
description: $description
enable: $enable
icon: $icon
realPrice: $realPrice
sellStrategy: $sellStrategy
title: $title
validate:
- eq: ["status_code", 200]

13
zhitongbao/api/Member/Member_delete.yml

@ -0,0 +1,13 @@
name: 删除会员
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/member/delete-batch/member-expense-config
method: POST
headers:
Content-Type: application/json
X-APP-ID: "470236309865238555"
Authorization: ${ENV(LDAPTOKEN)}
json:
idList: ["503182395336429568"]
validate:
- eq: ["status_code", 200]

11
zhitongbao/api/Member/Member_list.yml

@ -0,0 +1,11 @@
name: 会员列表查询
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/member/get/member-expense-config-list
method: GET
headers:
Content-Type: application/json
X-APP-ID: "470236309865238555"
Authorization: ${ENV(LDAPTOKEN)}
validate:
- eq: ["status_code", 200]

30
zhitongbao/api/Member/Member_update.yml

@ -0,0 +1,30 @@
name: 修改会员
variables:
bidPrice: 1500
days: 30
description: 充就送,好礼等你来~~
enable: 1
icon: http://medou.oss-cn-shenzhen.aliyuncs.com/saas/20200624155949.png
realPrice: 200
sellStrategy: common
title:
base_url: ${ENV(BURL)}
request:
url: /recycle-service/admin/member/update/member-expense-config/502180735986307072
method: POST
headers:
Content-Type: "application/json"
X-APP-ID: "470236309865238555"
Authorization: ${ENV(LDAPTOKEN)}
json:
bidPrice: $bidPrice
days: $days
description: $description
enable: $enable
icon: $icon
realPrice: $realPrice
sellStrategy: $sellStrategy
title: $title
validate:
- eq: ["status_code", 200]

zhitongbao/zhitongbao/api/Menu/ldap_Menu_add.yml → zhitongbao/api/Menu/ldap_Menu_add.yml

zhitongbao/zhitongbao/api/Menu/ldap_Menu_delete.yml → zhitongbao/api/Menu/ldap_Menu_delete.yml

zhitongbao/zhitongbao/api/Menu/ldap_Menu_list.yml → zhitongbao/api/Menu/ldap_Menu_list.yml

zhitongbao/zhitongbao/api/Menu/ldap_Menu_update.yml → zhitongbao/api/Menu/ldap_Menu_update.yml

zhitongbao/zhitongbao/api/ldap_department_list.yml → zhitongbao/api/ldap_department_list.yml

zhitongbao/zhitongbao/api/login.yml → zhitongbao/api/login.yml

zhitongbao/zhitongbao/api/login/app_login.yml → zhitongbao/api/login/app_login.yml

15
zhitongbao/api/login/ldap_QN_login.yml

@ -0,0 +1,15 @@
name: ldap登录
# QN 表示正式环境
base_url: ${ENV(QNURL)}
request:
url: /recycle-service/admin/login
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
X-APP-ID: "470236309865238555"
data:
username: zhangshan@qniao.cn
password: zhangshan123456
validate:
- eq: ["status_code", 200]
- {"check": "content.message", "comparator": "eq", "expect": "登陆成功"}

zhitongbao/zhitongbao/api/login/ldap_login.yml → zhitongbao/api/login/ldap_login.yml

zhitongbao/zhitongbao/api/login/ldap_logout.yml → zhitongbao/api/login/ldap_logout.yml

zhitongbao/zhitongbao/api/notification.yml → zhitongbao/api/notification.yml

@ -1,11 +1,11 @@
name: 账期过期钉钉提醒相关人员
base_url: ${ENV(BURL)}
base_url: ${ENV(QNURL)}
request:
url: /recycle-service/admin/proxy-sell/test/schedule
method: GET
headers:
Content-Type: "application/json"
X-APP-ID: "470236309865238555"
Authorization: ${ENV(LDAPTOKEN)}
Authorization: ${ENV(QNTOKEN)}
validate:
- eq: ["status_code", 200]

zhitongbao/zhitongbao/api/product/product_add.yml → zhitongbao/api/product/product_add.yml

zhitongbao/zhitongbao/api/product/product_delete.yml → zhitongbao/api/product/product_delete.yml

zhitongbao/zhitongbao/api/product/product_list.yml → zhitongbao/api/product/product_list.yml

zhitongbao/zhitongbao/api/product/product_list_b.yml → zhitongbao/api/product/product_list_b.yml

zhitongbao/zhitongbao/api/product/product_update.yml → zhitongbao/api/product/product_update.yml

zhitongbao/zhitongbao/api/product/product_update_status.yml → zhitongbao/api/product/product_update_status.yml

zhitongbao/zhitongbao/api/role/ldap_roleMenu_list.yml → zhitongbao/api/role/ldap_roleMenu_list.yml

zhitongbao/zhitongbao/api/role/ldap_role_add.yml → zhitongbao/api/role/ldap_role_add.yml

zhitongbao/zhitongbao/api/role/ldap_role_list.yml → zhitongbao/api/role/ldap_role_list.yml

zhitongbao/zhitongbao/api/role/ldap_role_mass_update.yml → zhitongbao/api/role/ldap_role_mass_update.yml

zhitongbao/zhitongbao/api/role/ldap_role_update.yml → zhitongbao/api/role/ldap_role_update.yml

zhitongbao/zhitongbao/debugtalk.py → zhitongbao/debugtalk.py

492
zhitongbao/reports/1600134084.html

@ -0,0 +1,492 @@
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - TestReport</title>
<style>
body {
background-color: #f2f2f2;
color: #333;
margin: 0 auto;
width: 960px;
}
#summary {
width: 960px;
margin-bottom: 20px;
}
#summary th {
background-color: skyblue;
padding: 5px 12px;
}
#summary td {
background-color: lightblue;
text-align: center;
padding: 4px 8px;
}
.details {
width: 960px;
margin-bottom: 20px;
}
.details th {
background-color: skyblue;
padding: 5px 12px;
}
.details tr .passed {
background-color: lightgreen;
}
.details tr .failed {
background-color: red;
}
.details tr .unchecked {
background-color: gray;
}
.details td {
background-color: lightblue;
padding: 5px 12px;
}
.details .detail {
background-color: lightgrey;
font-size: smaller;
padding: 5px 10px;
line-height: 20px;
text-align: left;
}
.details .success {
background-color: greenyellow;
}
.details .error {
background-color: red;
}
.details .failure {
background-color: salmon;
}
.details .skipped {
background-color: gray;
}
.button {
font-size: 1em;
padding: 6px;
width: 4em;
text-align: center;
background-color: #06d85f;
border-radius: 20px/50px;
cursor: pointer;
transition: all 0.3s ease-out;
}
a.button{
color: gray;
text-decoration: none;
display: inline-block;
}
.button:hover {
background: #2cffbd;
}
.overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
line-height: 25px;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 10px;
width: 50%;
position: relative;
transition: all 3s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: #06d85f;
}
.popup .content {
max-height: 80%;
overflow: auto;
text-align: left;
}
.popup .separator {
color:royalblue
}
@media screen and (max-width: 700px) {
.box {
width: 70%;
}
.popup {
width: 70%;
}
}
</style>
</head>
<body>
<h1>Test Report: </h1>
<h2>Summary</h2>
<table id="summary">
<tr>
<th>START AT</th>
<td colspan="4">2020-09-15 09:41:24</td>
</tr>
<tr>
<th>DURATION</th>
<td colspan="4">0.369 seconds</td>
</tr>
<tr>
<th>PLATFORM</th>
<td>HttpRunner 2.3.0 </td>
<td>CPython 3.8.4 </td>
<td colspan="2">Windows-10-10.0.18362-SP0</td>
</tr>
<tr>
<th>STAT</th>
<th colspan="2">TESTCASES (success/fail)</th>
<th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
</tr>
<tr>
<td>total (details) =></td>
<td colspan="2">1 (1/0)</td>
<td colspan="2">1 (1/0/0/0)</td>
</tr>
</table>
<h2>Details</h2>
<h3>修改会员</h3>
<table id="suite_1" class="details">
<tr>
<td>TOTAL: 1</td>
<td>SUCCESS: 1</td>
<td>FAILED: 0</td>
<td>ERROR: 0</td>
<td>SKIPPED: 0</td>
</tr>
<tr>
<th>Status</th>
<th colspan="2">Name</th>
<th>Response Time</th>
<th>Detail</th>
</tr>
<tr id="record_1_1">
<th class="success" style="width:5em;">success</th>
<td colspan="2">修改会员</td>
<td style="text-align:center;width:6em;">355.38 ms</td>
<td class="detail">
<a class="button" href="#popup_log_1_1_1">log-1</a>
<div id="popup_log_1_1_1" class="overlay">
<div class="popup">
<h2>Request and Response data</h2>
<a class="close" href="#record_1_1_1">&times;</a>
<div class="content">
<h3>Name: 修改会员</h3>
<h3>Request:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/update/member-expense-config/502180735986307072
</td>
</tr>
<tr>
<th>method</th>
<td>
POST
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>User-Agent</strong>: python-requests/2.24.0
</div>
<div>
<strong>Accept-Encoding</strong>: gzip, deflate
</div>
<div>
<strong>Accept</strong>: */*
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Content-Type</strong>: application/json
</div>
<div>
<strong>X-APP-ID</strong>: 470236309865238555
</div>
<div>
<strong>Authorization</strong>: Token a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>Content-Length</strong>: 258
</div>
</td>
</tr>
<tr>
<th>body</th>
<td>
{&#34;bidPrice&#34;: 1500, &#34;days&#34;: 30, &#34;description&#34;: &#34;\u5145\u5c31\u9001\uff0c\u597d\u793c\u7b49\u4f60\u6765~~&#34;, &#34;enable&#34;: 1, &#34;icon&#34;: &#34;http://medou.oss-cn-shenzhen.aliyuncs.com/saas/20200624155949.png&#34;, &#34;realPrice&#34;: 200, &#34;sellStrategy&#34;: &#34;common&#34;, &#34;title&#34;: &#34;\u5929&#34;}
</td>
</tr>
</table>
</div>
<h3>Response:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>ok</th>
<td>
True
</td>
</tr>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/update/member-expense-config/502180735986307072
</td>
</tr>
<tr>
<th>status_code</th>
<td>
200
</td>
</tr>
<tr>
<th>reason</th>
<td>
</td>
</tr>
<tr>
<th>cookies</th>
<td>
{}
</td>
</tr>
<tr>
<th>encoding</th>
<td>
UTF-8
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>Server</strong>: nginx
</div>
<div>
<strong>Date</strong>: Tue, 15 Sep 2020 01:41:24 GMT
</div>
<div>
<strong>Content-Type</strong>: application/json;charset=UTF-8
</div>
<div>
<strong>Transfer-Encoding</strong>: chunked
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Authorization</strong>: a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>X-Content-Type-Options</strong>: nosniff
</div>
<div>
<strong>X-XSS-Protection</strong>: 1; mode=block
</div>
<div>
<strong>Cache-Control</strong>: no-cache, no-store, max-age=0, must-revalidate
</div>
<div>
<strong>Pragma</strong>: no-cache
</div>
<div>
<strong>Expires</strong>: 0
</div>
<div>
<strong>X-Frame-Options</strong>: DENY
</div>
</td>
</tr>
<tr>
<th>content_type</th>
<td>
application/json;charset=UTF-8
</td>
</tr>
<tr>
<th>json</th>
<td>
<pre>{&#39;code&#39;: 0, &#39;message&#39;: &#39;successful&#39;, &#39;data&#39;: None}</pre>
</td>
</tr>
</table>
</div>
<h3>Validators:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>check</th>
<th>comparator</th>
<th>expect value</th>
<th>actual value</th>
</tr>
<tr>
<td class="passed">
status_code
</td>
<td>equals</td>
<td>200</td>
<td>200</td>
</tr>
</table>
</div>
<h3>Statistics:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>content_size(bytes)</th>
<td>45</td>
</tr>
<tr>
<th>response_time(ms)</th>
<td>355.38</td>
</tr>
<tr>
<th>elapsed(ms)</th>
<td>351.14</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</body>

492
zhitongbao/reports/1600134497.html

@ -0,0 +1,492 @@
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - TestReport</title>
<style>
body {
background-color: #f2f2f2;
color: #333;
margin: 0 auto;
width: 960px;
}
#summary {
width: 960px;
margin-bottom: 20px;
}
#summary th {
background-color: skyblue;
padding: 5px 12px;
}
#summary td {
background-color: lightblue;
text-align: center;
padding: 4px 8px;
}
.details {
width: 960px;
margin-bottom: 20px;
}
.details th {
background-color: skyblue;
padding: 5px 12px;
}
.details tr .passed {
background-color: lightgreen;
}
.details tr .failed {
background-color: red;
}
.details tr .unchecked {
background-color: gray;
}
.details td {
background-color: lightblue;
padding: 5px 12px;
}
.details .detail {
background-color: lightgrey;
font-size: smaller;
padding: 5px 10px;
line-height: 20px;
text-align: left;
}
.details .success {
background-color: greenyellow;
}
.details .error {
background-color: red;
}
.details .failure {
background-color: salmon;
}
.details .skipped {
background-color: gray;
}
.button {
font-size: 1em;
padding: 6px;
width: 4em;
text-align: center;
background-color: #06d85f;
border-radius: 20px/50px;
cursor: pointer;
transition: all 0.3s ease-out;
}
a.button{
color: gray;
text-decoration: none;
display: inline-block;
}
.button:hover {
background: #2cffbd;
}
.overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
line-height: 25px;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 10px;
width: 50%;
position: relative;
transition: all 3s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: #06d85f;
}
.popup .content {
max-height: 80%;
overflow: auto;
text-align: left;
}
.popup .separator {
color:royalblue
}
@media screen and (max-width: 700px) {
.box {
width: 70%;
}
.popup {
width: 70%;
}
}
</style>
</head>
<body>
<h1>Test Report: </h1>
<h2>Summary</h2>
<table id="summary">
<tr>
<th>START AT</th>
<td colspan="4">2020-09-15 09:48:17</td>
</tr>
<tr>
<th>DURATION</th>
<td colspan="4">0.235 seconds</td>
</tr>
<tr>
<th>PLATFORM</th>
<td>HttpRunner 2.3.0 </td>
<td>CPython 3.8.4 </td>
<td colspan="2">Windows-10-10.0.18362-SP0</td>
</tr>
<tr>
<th>STAT</th>
<th colspan="2">TESTCASES (success/fail)</th>
<th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
</tr>
<tr>
<td>total (details) =></td>
<td colspan="2">1 (1/0)</td>
<td colspan="2">1 (1/0/0/0)</td>
</tr>
</table>
<h2>Details</h2>
<h3>新增会员</h3>
<table id="suite_1" class="details">
<tr>
<td>TOTAL: 1</td>
<td>SUCCESS: 1</td>
<td>FAILED: 0</td>
<td>ERROR: 0</td>
<td>SKIPPED: 0</td>
</tr>
<tr>
<th>Status</th>
<th colspan="2">Name</th>
<th>Response Time</th>
<th>Detail</th>
</tr>
<tr id="record_1_1">
<th class="success" style="width:5em;">success</th>
<td colspan="2">新增会员</td>
<td style="text-align:center;width:6em;">197.34 ms</td>
<td class="detail">
<a class="button" href="#popup_log_1_1_1">log-1</a>
<div id="popup_log_1_1_1" class="overlay">
<div class="popup">
<h2>Request and Response data</h2>
<a class="close" href="#record_1_1_1">&times;</a>
<div class="content">
<h3>Name: 新增会员</h3>
<h3>Request:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/new/member-expense-config
</td>
</tr>
<tr>
<th>method</th>
<td>
POST
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>User-Agent</strong>: python-requests/2.24.0
</div>
<div>
<strong>Accept-Encoding</strong>: gzip, deflate
</div>
<div>
<strong>Accept</strong>: */*
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Content-Type</strong>: application/json
</div>
<div>
<strong>X-APP-ID</strong>: 470236309865238555
</div>
<div>
<strong>Authorization</strong>: Token a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>Content-Length</strong>: 252
</div>
</td>
</tr>
<tr>
<th>body</th>
<td>
{&#34;bidPrice&#34;: 1000, &#34;days&#34;: 30, &#34;description&#34;: &#34;\u65b0\u4eba\u9996\u5145\u4f18\u60e0\u5927\u5927~~&#34;, &#34;enable&#34;: 1, &#34;icon&#34;: &#34;http://medou.oss-cn-shenzhen.aliyuncs.com/saas/20200624155949.png&#34;, &#34;realPrice&#34;: 100, &#34;sellStrategy&#34;: &#34;common&#34;, &#34;title&#34;: &#34;\u5929&#34;}
</td>
</tr>
</table>
</div>
<h3>Response:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>ok</th>
<td>
True
</td>
</tr>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/new/member-expense-config
</td>
</tr>
<tr>
<th>status_code</th>
<td>
200
</td>
</tr>
<tr>
<th>reason</th>
<td>
</td>
</tr>
<tr>
<th>cookies</th>
<td>
{}
</td>
</tr>
<tr>
<th>encoding</th>
<td>
UTF-8
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>Server</strong>: nginx
</div>
<div>
<strong>Date</strong>: Tue, 15 Sep 2020 01:48:17 GMT
</div>
<div>
<strong>Content-Type</strong>: application/json;charset=UTF-8
</div>
<div>
<strong>Transfer-Encoding</strong>: chunked
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Authorization</strong>: a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>X-Content-Type-Options</strong>: nosniff
</div>
<div>
<strong>X-XSS-Protection</strong>: 1; mode=block
</div>
<div>
<strong>Cache-Control</strong>: no-cache, no-store, max-age=0, must-revalidate
</div>
<div>
<strong>Pragma</strong>: no-cache
</div>
<div>
<strong>Expires</strong>: 0
</div>
<div>
<strong>X-Frame-Options</strong>: DENY
</div>
</td>
</tr>
<tr>
<th>content_type</th>
<td>
application/json;charset=UTF-8
</td>
</tr>
<tr>
<th>json</th>
<td>
<pre>{&#39;code&#39;: 0, &#39;message&#39;: &#39;successful&#39;, &#39;data&#39;: None}</pre>
</td>
</tr>
</table>
</div>
<h3>Validators:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>check</th>
<th>comparator</th>
<th>expect value</th>
<th>actual value</th>
</tr>
<tr>
<td class="passed">
status_code
</td>
<td>equals</td>
<td>200</td>
<td>200</td>
</tr>
</table>
</div>
<h3>Statistics:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>content_size(bytes)</th>
<td>45</td>
</tr>
<tr>
<th>response_time(ms)</th>
<td>197.34</td>
</tr>
<tr>
<th>elapsed(ms)</th>
<td>191.669</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</body>

516
zhitongbao/reports/1600134541.html

@ -0,0 +1,516 @@
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - TestReport</title>
<style>
body {
background-color: #f2f2f2;
color: #333;
margin: 0 auto;
width: 960px;
}
#summary {
width: 960px;
margin-bottom: 20px;
}
#summary th {
background-color: skyblue;
padding: 5px 12px;
}
#summary td {
background-color: lightblue;
text-align: center;
padding: 4px 8px;
}
.details {
width: 960px;
margin-bottom: 20px;
}
.details th {
background-color: skyblue;
padding: 5px 12px;
}
.details tr .passed {
background-color: lightgreen;
}
.details tr .failed {
background-color: red;
}
.details tr .unchecked {
background-color: gray;
}
.details td {
background-color: lightblue;
padding: 5px 12px;
}
.details .detail {
background-color: lightgrey;
font-size: smaller;
padding: 5px 10px;
line-height: 20px;
text-align: left;
}
.details .success {
background-color: greenyellow;
}
.details .error {
background-color: red;
}
.details .failure {
background-color: salmon;
}
.details .skipped {
background-color: gray;
}
.button {
font-size: 1em;
padding: 6px;
width: 4em;
text-align: center;
background-color: #06d85f;
border-radius: 20px/50px;
cursor: pointer;
transition: all 0.3s ease-out;
}
a.button{
color: gray;
text-decoration: none;
display: inline-block;
}
.button:hover {
background: #2cffbd;
}
.overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
line-height: 25px;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 10px;
width: 50%;
position: relative;
transition: all 3s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: #06d85f;
}
.popup .content {
max-height: 80%;
overflow: auto;
text-align: left;
}
.popup .separator {
color:royalblue
}
@media screen and (max-width: 700px) {
.box {
width: 70%;
}
.popup {
width: 70%;
}
}
</style>
</head>
<body>
<h1>Test Report: </h1>
<h2>Summary</h2>
<table id="summary">
<tr>
<th>START AT</th>
<td colspan="4">2020-09-15 09:49:01</td>
</tr>
<tr>
<th>DURATION</th>
<td colspan="4">0.116 seconds</td>
</tr>
<tr>
<th>PLATFORM</th>
<td>HttpRunner 2.3.0 </td>
<td>CPython 3.8.4 </td>
<td colspan="2">Windows-10-10.0.18362-SP0</td>
</tr>
<tr>
<th>STAT</th>
<th colspan="2">TESTCASES (success/fail)</th>
<th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
</tr>
<tr>
<td>total (details) =></td>
<td colspan="2">1 (0/1)</td>
<td colspan="2">1 (0/1/0/0)</td>
</tr>
</table>
<h2>Details</h2>
<h3>删除会员</h3>
<table id="suite_1" class="details">
<tr>
<td>TOTAL: 1</td>
<td>SUCCESS: 0</td>
<td>FAILED: 1</td>
<td>ERROR: 0</td>
<td>SKIPPED: 0</td>
</tr>
<tr>
<th>Status</th>
<th colspan="2">Name</th>
<th>Response Time</th>
<th>Detail</th>
</tr>
<tr id="record_1_1">
<th class="failure" style="width:5em;">failure</th>
<td colspan="2">删除会员</td>
<td style="text-align:center;width:6em;">58.55 ms</td>
<td class="detail">
<a class="button" href="#popup_log_1_1_1">log-1</a>
<div id="popup_log_1_1_1" class="overlay">
<div class="popup">
<h2>Request and Response data</h2>
<a class="close" href="#record_1_1_1">&times;</a>
<div class="content">
<h3>Name: 删除会员</h3>
<h3>Request:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/delete-batch/member-expense-config
</td>
</tr>
<tr>
<th>method</th>
<td>
GET
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>User-Agent</strong>: python-requests/2.24.0
</div>
<div>
<strong>Accept-Encoding</strong>: gzip, deflate
</div>
<div>
<strong>Accept</strong>: */*
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Content-Type</strong>: application/json
</div>
<div>
<strong>X-APP-ID</strong>: 470236309865238555
</div>
<div>
<strong>Authorization</strong>: Token a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>Content-Length</strong>: 33
</div>
</td>
</tr>
<tr>
<th>body</th>
<td>
&#34;idList:[\&#34;503182395336429568\&#34;]&#34;
</td>
</tr>
</table>
</div>
<h3>Response:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>ok</th>
<td>
False
</td>
</tr>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/delete-batch/member-expense-config
</td>
</tr>
<tr>
<th>status_code</th>
<td>
405
</td>
</tr>
<tr>
<th>reason</th>
<td>
</td>
</tr>
<tr>
<th>cookies</th>
<td>
{}
</td>
</tr>
<tr>
<th>encoding</th>
<td>
UTF-8
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>Server</strong>: nginx
</div>
<div>
<strong>Date</strong>: Tue, 15 Sep 2020 01:49:01 GMT
</div>
<div>
<strong>Content-Type</strong>: application/json;charset=UTF-8
</div>
<div>
<strong>Transfer-Encoding</strong>: chunked
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Authorization</strong>: a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>X-Content-Type-Options</strong>: nosniff
</div>
<div>
<strong>X-XSS-Protection</strong>: 1; mode=block
</div>
<div>
<strong>Cache-Control</strong>: no-cache, no-store, max-age=0, must-revalidate
</div>
<div>
<strong>Pragma</strong>: no-cache
</div>
<div>
<strong>Expires</strong>: 0
</div>
<div>
<strong>X-Frame-Options</strong>: DENY
</div>
</td>
</tr>
<tr>
<th>content_type</th>
<td>
application/json;charset=UTF-8
</td>
</tr>
<tr>
<th>json</th>
<td>
<pre>{&#39;code&#39;: 405, &#39;message&#39;: &#34;Request method &#39;GET&#39; not supported&#34;, &#39;data&#39;: None}</pre>
</td>
</tr>
</table>
</div>
<h3>Validators:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>check</th>
<th>comparator</th>
<th>expect value</th>
<th>actual value</th>
</tr>
<tr>
<td class="failed">
status_code
</td>
<td>equals</td>
<td>200</td>
<td>405</td>
</tr>
</table>
</div>
<h3>Statistics:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>content_size(bytes)</th>
<td>71</td>
</tr>
<tr>
<th>response_time(ms)</th>
<td>58.55</td>
</tr>
<tr>
<th>elapsed(ms)</th>
<td>54.828</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<a class="button" href="#popup_attachment_1_1">traceback</a>
<div id="popup_attachment_1_1" class="overlay">
<div class="popup">
<h2>Traceback Message</h2>
<a class="close" href="#record_1_1">&times;</a>
<div class="content"><pre>Traceback (most recent call last):
File &#34;c:\python\too\lib\site-packages\httprunner\api.py&#34;, line 52, in test
test_runner.run_test(test_dict)
httprunner.exceptions.ValidationFailure:
validate: status_code equals 200(int) ==&gt; fail
405(int) equals 200(int)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File &#34;c:\python\too\lib\site-packages\httprunner\api.py&#34;, line 54, in test
self.fail(str(ex))
AssertionError:
validate: status_code equals 200(int) ==&gt; fail
405(int) equals 200(int)
</pre></div>
</div>
</div>
</td>
</tr>
</table>
</body>

492
zhitongbao/reports/1600134565.html

@ -0,0 +1,492 @@
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - TestReport</title>
<style>
body {
background-color: #f2f2f2;
color: #333;
margin: 0 auto;
width: 960px;
}
#summary {
width: 960px;
margin-bottom: 20px;
}
#summary th {
background-color: skyblue;
padding: 5px 12px;
}
#summary td {
background-color: lightblue;
text-align: center;
padding: 4px 8px;
}
.details {
width: 960px;
margin-bottom: 20px;
}
.details th {
background-color: skyblue;
padding: 5px 12px;
}
.details tr .passed {
background-color: lightgreen;
}
.details tr .failed {
background-color: red;
}
.details tr .unchecked {
background-color: gray;
}
.details td {
background-color: lightblue;
padding: 5px 12px;
}
.details .detail {
background-color: lightgrey;
font-size: smaller;
padding: 5px 10px;
line-height: 20px;
text-align: left;
}
.details .success {
background-color: greenyellow;
}
.details .error {
background-color: red;
}
.details .failure {
background-color: salmon;
}
.details .skipped {
background-color: gray;
}
.button {
font-size: 1em;
padding: 6px;
width: 4em;
text-align: center;
background-color: #06d85f;
border-radius: 20px/50px;
cursor: pointer;
transition: all 0.3s ease-out;
}
a.button{
color: gray;
text-decoration: none;
display: inline-block;
}
.button:hover {
background: #2cffbd;
}
.overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
line-height: 25px;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 10px;
width: 50%;
position: relative;
transition: all 3s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: #06d85f;
}
.popup .content {
max-height: 80%;
overflow: auto;
text-align: left;
}
.popup .separator {
color:royalblue
}
@media screen and (max-width: 700px) {
.box {
width: 70%;
}
.popup {
width: 70%;
}
}
</style>
</head>
<body>
<h1>Test Report: </h1>
<h2>Summary</h2>
<table id="summary">
<tr>
<th>START AT</th>
<td colspan="4">2020-09-15 09:49:25</td>
</tr>
<tr>
<th>DURATION</th>
<td colspan="4">0.887 seconds</td>
</tr>
<tr>
<th>PLATFORM</th>
<td>HttpRunner 2.3.0 </td>
<td>CPython 3.8.4 </td>
<td colspan="2">Windows-10-10.0.18362-SP0</td>
</tr>
<tr>
<th>STAT</th>
<th colspan="2">TESTCASES (success/fail)</th>
<th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
</tr>
<tr>
<td>total (details) =></td>
<td colspan="2">1 (1/0)</td>
<td colspan="2">1 (1/0/0/0)</td>
</tr>
</table>
<h2>Details</h2>
<h3>删除会员</h3>
<table id="suite_1" class="details">
<tr>
<td>TOTAL: 1</td>
<td>SUCCESS: 1</td>
<td>FAILED: 0</td>
<td>ERROR: 0</td>
<td>SKIPPED: 0</td>
</tr>
<tr>
<th>Status</th>
<th colspan="2">Name</th>
<th>Response Time</th>
<th>Detail</th>
</tr>
<tr id="record_1_1">
<th class="success" style="width:5em;">success</th>
<td colspan="2">删除会员</td>
<td style="text-align:center;width:6em;">854.67 ms</td>
<td class="detail">
<a class="button" href="#popup_log_1_1_1">log-1</a>
<div id="popup_log_1_1_1" class="overlay">
<div class="popup">
<h2>Request and Response data</h2>
<a class="close" href="#record_1_1_1">&times;</a>
<div class="content">
<h3>Name: 删除会员</h3>
<h3>Request:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/delete-batch/member-expense-config
</td>
</tr>
<tr>
<th>method</th>
<td>
POST
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>User-Agent</strong>: python-requests/2.24.0
</div>
<div>
<strong>Accept-Encoding</strong>: gzip, deflate
</div>
<div>
<strong>Accept</strong>: */*
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Content-Type</strong>: application/json
</div>
<div>
<strong>X-APP-ID</strong>: 470236309865238555
</div>
<div>
<strong>Authorization</strong>: Token a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>Content-Length</strong>: 33
</div>
</td>
</tr>
<tr>
<th>body</th>
<td>
&#34;idList:[\&#34;503182395336429568\&#34;]&#34;
</td>
</tr>
</table>
</div>
<h3>Response:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>ok</th>
<td>
True
</td>
</tr>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/delete-batch/member-expense-config
</td>
</tr>
<tr>
<th>status_code</th>
<td>
200
</td>
</tr>
<tr>
<th>reason</th>
<td>
</td>
</tr>
<tr>
<th>cookies</th>
<td>
{}
</td>
</tr>
<tr>
<th>encoding</th>
<td>
UTF-8
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>Server</strong>: nginx
</div>
<div>
<strong>Date</strong>: Tue, 15 Sep 2020 01:49:25 GMT
</div>
<div>
<strong>Content-Type</strong>: application/json;charset=UTF-8
</div>
<div>
<strong>Transfer-Encoding</strong>: chunked
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Authorization</strong>: a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>X-Content-Type-Options</strong>: nosniff
</div>
<div>
<strong>X-XSS-Protection</strong>: 1; mode=block
</div>
<div>
<strong>Cache-Control</strong>: no-cache, no-store, max-age=0, must-revalidate
</div>
<div>
<strong>Pragma</strong>: no-cache
</div>
<div>
<strong>Expires</strong>: 0
</div>
<div>
<strong>X-Frame-Options</strong>: DENY
</div>
</td>
</tr>
<tr>
<th>content_type</th>
<td>
application/json;charset=UTF-8
</td>
</tr>
<tr>
<th>json</th>
<td>
<pre>{&#39;timestamp&#39;: 1600134565154, &#39;status&#39;: 400, &#39;error&#39;: &#39;Bad Request&#39;, &#39;message&#39;: &#39;JSON parse error: Cannot construct instance of `com.qniao.trade.admin.dto.DeleteMemberExpenseConfigDto` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\&#39;idList:[&#34;503182395336429568&#34;]\&#39;); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.qniao.trade.admin.dto.DeleteMemberExpenseConfigDto` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\&#39;idList:[&#34;503182395336429568&#34;]\&#39;)\n at [Source: (PushbackInputStream); line: 1, column: 1]&#39;, &#39;path&#39;: &#39;/recycle-service/admin/member/delete-batch/member-expense-config&#39;, &#39;code&#39;: 400}</pre>
</td>
</tr>
</table>
</div>
<h3>Validators:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>check</th>
<th>comparator</th>
<th>expect value</th>
<th>actual value</th>
</tr>
<tr>
<td class="passed">
status_code
</td>
<td>equals</td>
<td>200</td>
<td>200</td>
</tr>
</table>
</div>
<h3>Statistics:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>content_size(bytes)</th>
<td>798</td>
</tr>
<tr>
<th>response_time(ms)</th>
<td>854.67</td>
</tr>
<tr>
<th>elapsed(ms)</th>
<td>849.353</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</body>

492
zhitongbao/reports/1600134650.html

@ -0,0 +1,492 @@
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> - TestReport</title>
<style>
body {
background-color: #f2f2f2;
color: #333;
margin: 0 auto;
width: 960px;
}
#summary {
width: 960px;
margin-bottom: 20px;
}
#summary th {
background-color: skyblue;
padding: 5px 12px;
}
#summary td {
background-color: lightblue;
text-align: center;
padding: 4px 8px;
}
.details {
width: 960px;
margin-bottom: 20px;
}
.details th {
background-color: skyblue;
padding: 5px 12px;
}
.details tr .passed {
background-color: lightgreen;
}
.details tr .failed {
background-color: red;
}
.details tr .unchecked {
background-color: gray;
}
.details td {
background-color: lightblue;
padding: 5px 12px;
}
.details .detail {
background-color: lightgrey;
font-size: smaller;
padding: 5px 10px;
line-height: 20px;
text-align: left;
}
.details .success {
background-color: greenyellow;
}
.details .error {
background-color: red;
}
.details .failure {
background-color: salmon;
}
.details .skipped {
background-color: gray;
}
.button {
font-size: 1em;
padding: 6px;
width: 4em;
text-align: center;
background-color: #06d85f;
border-radius: 20px/50px;
cursor: pointer;
transition: all 0.3s ease-out;
}
a.button{
color: gray;
text-decoration: none;
display: inline-block;
}
.button:hover {
background: #2cffbd;
}
.overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
line-height: 25px;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 10px;
width: 50%;
position: relative;
transition: all 3s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: #06d85f;
}
.popup .content {
max-height: 80%;
overflow: auto;
text-align: left;
}
.popup .separator {
color:royalblue
}
@media screen and (max-width: 700px) {
.box {
width: 70%;
}
.popup {
width: 70%;
}
}
</style>
</head>
<body>
<h1>Test Report: </h1>
<h2>Summary</h2>
<table id="summary">
<tr>
<th>START AT</th>
<td colspan="4">2020-09-15 09:50:50</td>
</tr>
<tr>
<th>DURATION</th>
<td colspan="4">0.281 seconds</td>
</tr>
<tr>
<th>PLATFORM</th>
<td>HttpRunner 2.3.0 </td>
<td>CPython 3.8.4 </td>
<td colspan="2">Windows-10-10.0.18362-SP0</td>
</tr>
<tr>
<th>STAT</th>
<th colspan="2">TESTCASES (success/fail)</th>
<th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
</tr>
<tr>
<td>total (details) =></td>
<td colspan="2">1 (1/0)</td>
<td colspan="2">1 (1/0/0/0)</td>
</tr>
</table>
<h2>Details</h2>
<h3>删除会员</h3>
<table id="suite_1" class="details">
<tr>
<td>TOTAL: 1</td>
<td>SUCCESS: 1</td>
<td>FAILED: 0</td>
<td>ERROR: 0</td>
<td>SKIPPED: 0</td>
</tr>
<tr>
<th>Status</th>
<th colspan="2">Name</th>
<th>Response Time</th>
<th>Detail</th>
</tr>
<tr id="record_1_1">
<th class="success" style="width:5em;">success</th>
<td colspan="2">删除会员</td>
<td style="text-align:center;width:6em;">255.39 ms</td>
<td class="detail">
<a class="button" href="#popup_log_1_1_1">log-1</a>
<div id="popup_log_1_1_1" class="overlay">
<div class="popup">
<h2>Request and Response data</h2>
<a class="close" href="#record_1_1_1">&times;</a>
<div class="content">
<h3>Name: 删除会员</h3>
<h3>Request:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/delete-batch/member-expense-config
</td>
</tr>
<tr>
<th>method</th>
<td>
POST
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>User-Agent</strong>: python-requests/2.24.0
</div>
<div>
<strong>Accept-Encoding</strong>: gzip, deflate
</div>
<div>
<strong>Accept</strong>: */*
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Content-Type</strong>: application/json
</div>
<div>
<strong>X-APP-ID</strong>: 470236309865238555
</div>
<div>
<strong>Authorization</strong>: Token a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>Content-Length</strong>: 34
</div>
</td>
</tr>
<tr>
<th>body</th>
<td>
{&#34;idList&#34;: [&#34;503182395336429568&#34;]}
</td>
</tr>
</table>
</div>
<h3>Response:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>ok</th>
<td>
True
</td>
</tr>
<tr>
<th>url</th>
<td>
http://api-admin-test.qniao.cn/recycle-service/admin/member/delete-batch/member-expense-config
</td>
</tr>
<tr>
<th>status_code</th>
<td>
200
</td>
</tr>
<tr>
<th>reason</th>
<td>
</td>
</tr>
<tr>
<th>cookies</th>
<td>
{}
</td>
</tr>
<tr>
<th>encoding</th>
<td>
UTF-8
</td>
</tr>
<tr>
<th>headers</th>
<td>
<div>
<strong>Server</strong>: nginx
</div>
<div>
<strong>Date</strong>: Tue, 15 Sep 2020 01:50:50 GMT
</div>
<div>
<strong>Content-Type</strong>: application/json;charset=UTF-8
</div>
<div>
<strong>Transfer-Encoding</strong>: chunked
</div>
<div>
<strong>Connection</strong>: keep-alive
</div>
<div>
<strong>Authorization</strong>: a4289fbdfb3422e76232906b1ccdffb7
</div>
<div>
<strong>X-Content-Type-Options</strong>: nosniff
</div>
<div>
<strong>X-XSS-Protection</strong>: 1; mode=block
</div>
<div>
<strong>Cache-Control</strong>: no-cache, no-store, max-age=0, must-revalidate
</div>
<div>
<strong>Pragma</strong>: no-cache
</div>
<div>
<strong>Expires</strong>: 0
</div>
<div>
<strong>X-Frame-Options</strong>: DENY
</div>
</td>
</tr>
<tr>
<th>content_type</th>
<td>
application/json;charset=UTF-8
</td>
</tr>
<tr>
<th>json</th>
<td>
<pre>{&#39;code&#39;: 0, &#39;message&#39;: &#39;successful&#39;, &#39;data&#39;: None}</pre>
</td>
</tr>
</table>
</div>
<h3>Validators:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>check</th>
<th>comparator</th>
<th>expect value</th>
<th>actual value</th>
</tr>
<tr>
<td class="passed">
status_code
</td>
<td>equals</td>
<td>200</td>
<td>200</td>
</tr>
</table>
</div>
<h3>Statistics:</h3>
<div style="overflow: auto">
<table>
<tr>
<th>content_size(bytes)</th>
<td>45</td>
</tr>
<tr>
<th>response_time(ms)</th>
<td>255.39</td>
</tr>
<tr>
<th>elapsed(ms)</th>
<td>252.743</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</body>

zhitongbao/zhitongbao/testcases/demo_testcase.yml → zhitongbao/testcases/demo_testcase.yml

zhitongbao/zhitongbao/testcases/ldap_Menu.yml → zhitongbao/testcases/ldap_Menu.yml

zhitongbao/zhitongbao/testcases/ldap_token.yml → zhitongbao/testcases/ldap_token.yml

zhitongbao/zhitongbao/testcases/product.yml → zhitongbao/testcases/product.yml

zhitongbao/zhitongbao/testcases/product_add.yml → zhitongbao/testcases/product_add.yml

zhitongbao/zhitongbao/testsuites/demo_testsuite.yml → zhitongbao/testsuites/demo_testsuite.yml

zhitongbao/zhitongbao/testsuites/product/product_add.yml → zhitongbao/testsuites/product/product_add.yml

Loading…
Cancel
Save