作者 bianxinhua

add README

正在显示 50 个修改的文件 包含 4792 行增加0 行删除

要显示太多修改。

为保证性能只显示 50 of 50+ 个文件。

  1 +#base_url=https://ability-test.fjmaimaimai.com
  2 +#base_public_url = http://public-interface-test.fjmaimaimai.com/
  3 +#base_public_url = https://public-interface.fjmaimaimai.com/mmm-partnermg/
  4 +#base_business_url = https://suplus-business-admin-gateway-test.fjmaimaimai.com/
  5 +#base_worth_url = https://suplus-worth-web-gateway-test.fjmaimaimai.com/
  6 +#base_manager_url= https://public-interface.fjmaimaimai.com/mmm-partnermg
  7 +base_manager_url=http://mmm-partnermg-test.fjmaimaimai.com/
  8 +base_url = http://mmm-partner-test.fjmaimaimai.com
不能预览此文件类型
不能预览此文件类型
  1 +name: 获取授权令牌:/v1/auth/accessToken
  2 +base_url: ${ENV(base_url)}
  3 +variables:
  4 + currtime1: ${make_time()}
  5 + uuid1: ${make_uuid()}
  6 + access_token1: ''
  7 + sign1: ${make_sign($currtime1, $uuid1, $access_token1)}
  8 +teardown_hooks:
  9 + - ${teardown_hook_get_accesstoken($response)}
  10 + - ${teardown_hook_get_refreshtoken($response)}
  11 +request:
  12 + headers:
  13 + Content-Type: application/json;charset=utf-8
  14 + User-Agent: okhttp/3.12.3
  15 + X-MMM-AccessToken: $access_token1
  16 + X-MMM-AppName: com.mmm.ability
  17 + X-MMM-AppProject: ability
  18 + X-MMM-DeviceType: '1'
  19 + X-MMM-Sign: $sign1
  20 + X-MMM-Timestamp: $currtime1
  21 + X-MMM-Uuid: $uuid1
  22 + X-MMM-Version: 0.4.0
  23 + json:
  24 + authCode: ${get_authcode()}
  25 + clientId: lks3Z8Ncn2j
  26 + clientSecret: gtfhyjukiol3Qncbvmdwe67khh
  27 + method: POST
  28 + url: /v1/auth/accessToken
  1 +name: 账号登录:/v1/auth/login
  2 +base_url: ${ENV(base_url)}
  3 +variables:
  4 + currtime: ${make_time()}
  5 + uuid: ${make_uuid()}
  6 + access_token: ''
  7 + sign: ${make_sign($currtime, $uuid,$access_token)}
  8 + grantType: signInPassword
  9 + phone: ${convert_to_string(17770000005)}
  10 + password: 406f44fcef8d2e74db0f1b334c48369dcf6b38d0
  11 +teardown_hooks:
  12 + - ${teardown_hook_get_authcode($response)}
  13 +request:
  14 + headers:
  15 + Content-Type: application/json;charset=utf-8
  16 + User-Agent: okhttp/3.12.3
  17 + X-MMM-AccessToken: $access_token
  18 + X-MMM-AppName: com.mmm.partner
  19 + X-MMM-AppProject: ability
  20 + X-MMM-DeviceType: '1'
  21 + X-MMM-Sign: $sign
  22 + X-MMM-Timestamp: $currtime
  23 + X-MMM-Uuid: $uuid
  24 + X-MMM-Version: 0.1.0
  25 + json:
  26 + phone: $phone
  27 + grantType: $grantType
  28 + password: $password
  29 + clientId: 'pdf233Znkjo'
  30 + method: POST
  31 + url: /v1/auth/login
  1 +name: 用户信息:
  2 +base_url: ${ENV(base_url)}
  3 +variables:
  4 + currtime: ${make_time()}
  5 + uuid: ${make_uuid()}
  6 + var_access_token: ${get_accesstoken()}
  7 + sign: ${make_sign($currtime, $uuid, $var_access_token)}
  8 +teardown_hooks:
  9 + - ${teardown_hook_get_cuid($response)}
  10 + - ${teardown_hook_get_credentials($response)}
  11 + - ${teardown_hook_get_muid($response)}
  12 + - ${teardown_hook_get_cid($response)}
  13 +request:
  14 + headers:
  15 + Content-Type: application/json;charset=utf-8
  16 + User-Agent: okhttp/3.12.3
  17 + X-MMM-AccessToken: $var_access_token
  18 + X-MMM-AppName: com.mmm.ability
  19 + X-MMM-AppProject: ability
  20 + X-MMM-DeviceType: '1'
  21 + X-MMM-Sign: $sign
  22 + X-MMM-Timestamp: $currtime
  23 + X-MMM-Uuid: $uuid
  24 + X-MMM-Version: 0.4.0
  25 + json:
  26 + id: 1
  27 + method: POST
  28 + url: /v1/user/userInfo
  1 +name: APP版本升级
  2 +base_url: ${ENV(base_public_url)}
  3 +variables:
  4 + currtime: ${make_time()}
  5 + uuid: ${make_uuid()}
  6 + access_token: ${get_accesstoken()}
  7 + sign: ${make_sign($currtime, $uuid, $access_token)}
  8 +
  9 +request:
  10 + headers:
  11 + Content-Type: application/json;charset=utf-8
  12 + User-Agent: PartnerTest/20100 CFNetwork/1125.2 Darwin/19.4.0
  13 + X-MMM-AccessToken: $access_token
  14 + X-MMM-AppName: com.maimaimai.partner
  15 + X-MMM-AppProject: partner
  16 + X-MMM-DeviceType: '1'
  17 + X-MMM-Sign: $sign
  18 + X-MMM-Timestamp: $currtime
  19 + X-MMM-Uuid: $uuid
  20 + X-MMM-Version: 0.1.0
  21 + json:
  22 + versionNo: '10003'
  23 + channel: $channel
  24 + method: POST
  25 + url: adminbase/version/getLatestVersionInfo
  26 +
  1 +
  2 +name: demo api
  3 +variables:
  4 + var1: value1
  5 + var2: value2
  6 +request:
  7 + url: /api/path/$var1
  8 + method: POST
  9 + headers:
  10 + Content-Type: "application/json"
  11 + json:
  12 + key: $var2
  13 +validate:
  14 + - eq: ["status_code", 200]
  1 +name: 管理员新增和修改:/v1/admin/update
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 + phone: 15005046165
  5 + password: d033e22ae348aeb5660fc2140aec35850c4da997
  6 +request:
  7 + headers:
  8 + Content-Type: application/json;charset=utf-8
  9 + User-Agent: okhttp/3.12.3
  10 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  11 + json:
  12 + account: ${convert_to_string(13559112969)}
  13 + status: 1
  14 + id: 6
  15 + permissionType: [1,2,3]
  16 + method: POST
  17 + url: /v1/admin/update
  1 +name: 管理员详情:/v1/admin/detail
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 +# phone: 15005046165
  5 +# password: d033e22ae348aeb5660fc2140aec35850c4da997
  6 +request:
  7 + headers:
  8 + Content-Type: application/json;charset=utf-8
  9 + User-Agent: okhttp/3.12.3
  10 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  11 + json:
  12 + id: 16
  13 + method: POST
  14 + url: /v1/admin/detail
  1 +name: 管理员禁用和启用:/v1/admin/forbidden
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 + phone: 15005046165
  5 + password: d033e22ae348aeb5660fc2140aec35850c4da997
  6 +request:
  7 + headers:
  8 + Content-Type: application/json;charset=utf-8
  9 + User-Agent: okhttp/3.12.3
  10 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  11 + json:
  12 + id: 6
  13 + statue: 1
  14 + method: POST
  15 + url: /v1/admin/forbidden
  1 +name: 管理员列表:/v1/admin/list
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 + phone: 15005046165
  5 + password: d033e22ae348aeb5660fc2140aec35850c4da997
  6 +request:
  7 + headers:
  8 + Content-Type: application/json;charset=utf-8
  9 + User-Agent: okhttp/3.12.3
  10 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  11 + json:
  12 + searchText:
  13 + pageNumber: 1
  14 + pageSize: 10
  15 + method: POST
  16 + url: /v1/admin/list
  1 +name: 管理员修改
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 +request:
  5 + headers:
  6 + Content-Type: application/json;charset=utf-8
  7 + User-Agent: okhttp/3.12.3
  8 + Authorization: Bearer ${get_m_accesstoken()}
  9 + json:
  10 + account: ${convert_to_string(18800000009)}
  11 + status: 1
  12 + id: 59
  13 + permissionType: [6]
  14 + method: POST
  15 + url: /v1/admin/update
  1 +name: 管理员新增
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 +request:
  5 + headers:
  6 + Content-Type: application/json;charset=utf-8
  7 + User-Agent: okhttp/3.12.3
  8 + Authorization: Bearer ${get_m_accesstoken()}
  9 + json:
  10 + account: ${convert_to_string($account)}
  11 + status: 1
  12 +# id: 6
  13 + permissionType: [2,3]
  14 + method: POST
  15 + url: /v1/admin/update
  1 +name: 账号登录
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 + username: ${convert_to_string(10000000001)}
  5 + password: 7c4a8d09ca3762af61e59520943dc26494f8941b
  6 +teardown_hooks:
  7 + - ${teardown_hook_get_m_accesstoken($response)}
  8 +request:
  9 + headers:
  10 + Content-Type: application/json;charset=utf-8
  11 + User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
  12 + json:
  13 + password: $password
  14 + username: $username
  15 + method: POST
  16 + url: v1/auth/login
  17 +validate:
  18 +- eq:
  19 + - content.msg
  20 + - ok
  21 +
  1 +name: 实际订单新增
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer ${get_m_accesstoken()}
  8 + json:
  9 + buyer: 我是买家${get_second()}
  10 + buyerPhone: ${convert_to_string(13459147023)}
  11 + address: '福建省福州市收获地址1'
  12 + partner: 2
  13 + partnerRatio: 1.1
  14 + salesmanRatio: 2.2
  15 + orderId: ${get_nowtime()}
  16 + orderName: ${get_nowtime()}
  17 + orderNum: 50
  18 + orderPrice: 100
  19 + orderDist: '福建一区'
  20 + orderStatue: 3
  21 +
  22 + method: POST
  23 + url: /v1/order/actual/update
  24 +
  1 +name: 意向订单新增
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer ${get_m_accesstoken()}
  8 + json:
  9 + buyer: 我是买家${get_second()}
  10 + buyerPhone: ${convert_to_string(13459147023)}
  11 + address: '福建省福州市收获地址1'
  12 + partner: 2
  13 + partnerRatio: 99.19
  14 + salesmanRatio: 0.99
  15 + orderId: ${get_nowtime()}
  16 + orderName: ${get_nowtime()}
  17 + orderNum: 50000000000
  18 + orderPrice: 1000000000
  19 + orderDist: '福建一区'
  20 + method: POST
  21 + url: v1/order/purpose/update
  1 +name: 合伙人添加
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer ${get_m_accesstoken()}
  8 + json:
  9 + partnerName: '卞信华'
  10 + partnerType: 3
  11 + area: '福建省福州市XXXXX区'
  12 + account: ${convert_to_string($account)}
  13 + state: 1
  14 + cooperationTime: '2020-07-30'
  15 + salesmanName: '小屁孩'
  16 + phone: ${convert_to_string($account)}
  17 + method: POST
  18 + url: v1/partners/add
  1 +name: /v1/partners/detail
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  8 + json:
  9 + id: 11
  10 +# account: ${convert_to_string(13559112969)}
  11 +# state: 1
  12 +# cooperationTime: '2020-06-28'
  13 +# salesmanName: '小张'
  14 +# phone: ${convert_to_string(15588888888)}
  15 + method: POST
  16 + url: /v1/partners/detail
  1 +name: 合伙人编辑
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer ${get_m_accesstoken()}
  8 + json:
  9 + partnerName: 'bxh002'
  10 + partnerType: 2
  11 + area: '福建省福州市一区'
  12 + account: ${convert_to_string(13459147027)}
  13 + state: 1
  14 + cooperationTime: '2020-06-30'
  15 + salesmanName: '小张'
  16 + phone: ${convert_to_string(13459147027)}
  17 + id: 22
  18 + method: POST
  19 + url: /v1/partners/edit
  1 +name: /v1/partners/list
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  8 + json:
  9 + partnerName:
  10 + partnerType:
  11 + area:
  12 +# account: ${convert_to_string(13559112969)}
  13 +# state: 1
  14 +# cooperationTime: '2020-06-28'
  15 +# salesmanName: '小张'
  16 +# phone: ${convert_to_string(15588888888)}
  17 + method: POST
  18 + url: /v1/partners/list
  1 +name: /v1/partners/set-status
  2 +base_url: ${ENV(base_manager_url)}
  3 +request:
  4 + headers:
  5 + Content-Type: application/json;charset=utf-8
  6 + User-Agent: okhttp/3.12.3
  7 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODc0NTg0MjgsImlhdCI6MTU4NzQzNjgyNywiaXNzIjoibW1tX29wcG1nIiwibmJmIjoxNTg3NDM2ODI3LCJ1aWQiOjMyNDQ3NDc3Mjg1MzMyNDgsImNvbXBhbnlfaWQiOjM2MCwidXNlcl9jb21wYW55X2lkIjozMjQ0NzQ3NzI4NTMzMjQ4fQ.5t4HO5gbAXT_WXHGNf8ZsbXpPHrzsFhnuXWBtPZ4tWs
  8 + json:
  9 + status: 2
  10 + id: 9
  11 + method: POST
  12 + url: /v1/partners/set-status
  1 +name: /v1/auth/profile
  2 +base_url: ${ENV(base_manager_url)}
  3 +variables:
  4 + phone: 15005046165
  5 + password: d033e22ae348aeb5660fc2140aec35850c4da997
  6 +request:
  7 + headers:
  8 + Content-Type: application/json;charset=utf-8
  9 + User-Agent: okhttp/3.12.3
  10 + Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTMzNTY2NjEsImlhdCI6MTU5MzMxMzQ2MSwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5MzMxMzQ2MSwidWlkIjo2fQ.UOh6EUisrD6gH2m3JrXwfLmRj3OpyaVK0SNwTETDwWk
  11 + json:
  12 + password: $password
  13 + username: ${convert_to_string(13559112969)}
  14 + method: POST
  15 + url: /v1/auth/profile
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTM3OTI3ODcsImlzcyI6Imp3dCJ9.IxQHm091FrkOTCE3WTC3-1XycsdRsotllIujsKG8Zpg
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTM3OTM2NTcsImlzcyI6Imp3dCJ9.RSktD87bv3wl2ctcQRaD9J9GbGPFDwWW1XKfRWrfAbQ
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5NjcxOTIsImlhdCI6MTU5MzkyMzk5MiwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5MzkyMzk5MiwidWlkIjoxfQ.doPUmNavAHSijOMKJGqNKVuXXqcGltIlOwFLXJcZ7Jk
  1 +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI5LCJleHAiOjE1OTM3OTI4MTcsImlzcyI6Imp3dCJ9.uBQ0vYCvjdou4iQe9tQ9pS94XbjNTiJQTq48Czc5WMo
  1 +import random
  2 +import string
  3 +import time,datetime
  4 +from helpfunc.login_func import *
  5 +from helpfunc.db_func import *
  6 +from helpfunc.header_func import *
  7 +from random import randint
  8 +
  9 +def sleep(n_secs):
  10 + time.sleep(n_secs)
  11 +
  12 +def convert_to_string(value):
  13 + return str(value)
  14 +
  15 +def get_nowtime():
  16 + return time.strftime("%Y%m%d%H%M%S",time.localtime(time.time()))
  17 +
  18 +def get_second():
  19 + curr_time = datetime.datetime.now()
  20 + return curr_time.second
  21 +
  22 +def create_channel(num):
  23 + channel = []
  24 + for i in range(num+1):
  25 + channel.append(i)
  26 + return channel
  27 +
  28 +def create_phone_number(num):
  29 + phone_number = []
  30 + for i in range(num):
  31 + phone_number.append('189%08d'%i)
  32 + # print(phone_number)
  33 + return phone_number
  34 +
  35 +
  1 +# @Time :2019/11/26 11:22
  2 +# @Author :dengyuting
  3 +# @File :__init__.py.py
  1 +# @Time :2019/11/26 11:25
  2 +# @Author :dengyuting
  3 +# @File :db_func.py
  4 +import pymysql
  5 +
  6 +db_config ={"host": "101.37.68.23",
  7 + "port": 3306,
  8 + "user": "dengyuting",
  9 + "password": "dyt_123456",
  10 + "db": "opportunity_test",
  11 + "charset": 'utf8'}
  12 +
  13 +def get_id_from_database(tbl, company_id, column, column_value):
  14 + db = pymysql.connect(**db_config)
  15 + cursor = db.cursor()
  16 + company_id = str(company_id)
  17 + column_value = str(column_value)
  18 + sql= "select id from " + tbl + " where company_id=" + company_id + " and " + column + "=" + column_value + \
  19 + " and delete_at=0"
  20 + try:
  21 + cursor.execute(sql)
  22 + result = cursor.fetchone()
  23 + return result[0]
  24 + except Exception as err:
  25 + # 发生错误时回滚
  26 + print(err)
  27 + db.rollback()
  28 + db.close()
  29 +
  30 +def get_chanceid_from_database(company_id):
  31 + db = pymysql.connect(**db_config)
  32 + cursor = db.cursor()
  33 + company_id = str(company_id)
  34 + sql= "select id from chance where company_id=" + company_id + " order by create_at desc"
  35 + try:
  36 + cursor.execute(sql)
  37 + result = cursor.fetchone()
  38 + return result[0]
  39 + except Exception as err:
  40 + # 发生错误时回滚
  41 + print(err)
  42 + db.rollback()
  43 + db.close()
  44 +
  45 +def setup_hook_clean_db(companyid):
  46 + """
  47 + 初始化时清理数据库中对应公司的历史数据
  48 + :return:
  49 + """
  50 + db = pymysql.connect(**db_config)
  51 + cursor = db.cursor()
  52 + companyid = str(companyid)
  53 + # get_adminid = 'select admin_id from company where id='+companyid
  54 + # get_user_company_id = 'select id from user_company where company_id='+companyid
  55 + try:
  56 + # cursor.execute(get_adminid)
  57 + # result = cursor.fetchone()
  58 + # admin_id = result[0]
  59 + # admin_id = str(admin_id)
  60 + # cursor.execute(get_user_company_id)
  61 + # result = cursor.fetchone()
  62 + # user_company_id = result[0]
  63 + # user_company_id = str(user_company_id)
  64 + # cursor.execute('delete from department where company_id=' + companyid + ' and is_top!=1')
  65 + # cursor.execute('delete from user_company where company_id=' + companyid + ' and user_id!='+admin_id)
  66 + # cursor.execute('delete from user_department where company_id=' + companyid + ' and user_company_id!='+ user_company_id)
  67 + # cursor.execute('delete from position where company_id=' + companyid)
  68 + # cursor.execute('delete from user_position where company_id=' + companyid)
  69 + # cursor.execute('delete from role where company_id=' + companyid + ' and is_default!=1')
  70 + # cursor.execute('delete from user_role where company_id=' + companyid)
  71 + # cursor.execute('delete from chance_type where company_id=' + companyid)
  72 + # cursor.execute('delete from audit_template where company_id=' + companyid)
  73 + # cursor.execute('delete from audit_form where company_id=' + companyid)
  74 + cursor.execute('delete a from chance_data a left JOIN chance b on a.chance_id=b.id where b.company_id=' + companyid)
  75 + db.commit()
  76 + cursor.execute('delete a from audit_flow_process a left JOIN chance b on a.chance_id=b.id where b.company_id=' + companyid)
  77 + db.commit()
  78 + cursor.execute('delete a from chance_department a left JOIN chance b on a.chance_id=b.id where b.company_id=' + companyid)
  79 + db.commit()
  80 + cursor.execute('delete from user_msg where receive_user_id in (select id from user_company where company_id=' + companyid + ') ' \
  81 + 'or sender_user_id in (select id from user_company where company_id=' + companyid +')')
  82 + db.commit()
  83 + cursor.execute('delete from comment where user_id in (select id from user_company where company_id=' + companyid + ')')
  84 + db.commit()
  85 + cursor.execute('delete from chance_favorite where user_id in (select id from user_company where company_id=' + companyid + ')')
  86 + db.commit()
  87 + #这句要放在最后执行
  88 + cursor.execute('delete from chance where company_id=' + companyid)
  89 + db.commit()
  90 + print("delete OK")
  91 + except Exception as err:
  92 + # 发生错误时回滚
  93 + print("this is:", err)
  94 + db.rollback()
  95 + db.close()
  1 +# @Time :2019/11/26 11:24
  2 +# @Author :dengyuting
  3 +# @File :header_func.py
  4 +import hashlib
  5 +import time
  6 +import uuid
  7 +
  8 +
  9 +def make_time():
  10 + """
  11 + 生成当前时间戳
  12 + """
  13 + return str(round(time.time() * 1000))
  14 +
  15 +def make_uuid():
  16 + """
  17 + 基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性
  18 + """
  19 + return str(uuid.uuid1())
  20 +
  21 +def make_sign(currtime, uuid, accessstoken):
  22 + """
  23 + 生成签名
  24 + :param currtime:
  25 + :param uuid:
  26 + :param accessstoken:
  27 + :return:
  28 + """
  29 + sign = 'v!(MmM' + currtime + uuid + accessstoken + 'MmM)i^'
  30 + sign = hashlib.sha256(sign.encode("utf-8"))
  31 + encrypts = sign.hexdigest()
  32 + return encrypts
  1 +# @Time :2019/11/26 11:23
  2 +# @Author :dengyuting
  3 +# @File :login_func.py
  4 +import json
  5 +
  6 +
  7 +def teardown_hook_get_accesstoken(response):
  8 + if response.status_code == 200:
  9 + jsondata = json.loads(response.text)
  10 + access_token =jsondata['data']['accessToken']
  11 + try:
  12 + # 保存token到文件
  13 + with open('config/accessToken.csv','w+') as f:
  14 + f.write(access_token)
  15 + print('写入成功,access_token:{}'.format(access_token))
  16 + f.close()
  17 + except Exception as e:
  18 + print('写入失败', e)
  19 + return access_token
  20 +
  21 +def teardown_hook_get_refreshtoken(response):
  22 + if response.status_code == 200:
  23 + jsondata = json.loads(response.text)
  24 + refresh_token =jsondata['data']['refreshToken']
  25 + try:
  26 + # 保存token到文件
  27 + with open('config/refreshToken.csv','w+') as f:
  28 + f.write(refresh_token)
  29 + print('写入成功,refresh_token:{}'.format(refresh_token))
  30 + f.close()
  31 + except Exception as e:
  32 + print('写入失败', e)
  33 + return refresh_token
  34 +
  35 +def teardown_hook_get_m_refreshtoken(response):
  36 + if response.status_code == 200:
  37 + jsondata = json.loads(response.text)
  38 + m_refresh_token =jsondata['data']['access']['refresh_token']
  39 + try:
  40 + # 保存token到文件
  41 + with open('config/m_refresh_token.csv','w+') as f:
  42 + f.write(m_refresh_token)
  43 + print('写入成功,m_refresh_token:{}'.format(m_refresh_token))
  44 + f.close()
  45 + except Exception as e:
  46 + print('写入失败', e)
  47 + return m_refresh_token
  48 +
  49 +def teardown_hook_get_authcode(response):
  50 + if response.status_code == 200:
  51 + jsondata = json.loads(response.text)
  52 + authCode = jsondata['data']['authCode']
  53 + try:
  54 + # 保存token到文件
  55 + with open('config/authCode.csv','w+') as f:
  56 + f.write(authCode)
  57 + print('写入成功,authCode:{}'.format(authCode))
  58 + f.close()
  59 + except Exception as e:
  60 + print('写入失败', e)
  61 + return authCode
  62 +
  63 +def teardown_hook_get_m_accesstoken(response):
  64 + print(response.status_code)
  65 + if response.status_code == 200:
  66 + jsondata = json.loads(response.text)
  67 + access_token = jsondata['data']['access']['accessToken']
  68 + try:
  69 + # 保存token到文件
  70 + with open('config/m_accessToken.csv','w+') as f:
  71 + f.write(access_token)
  72 + print('写入成功,access_token:{}'.format(access_token))
  73 + f.close()
  74 + except Exception as e:
  75 + print('写入失败', e)
  76 + return access_token
  77 +
  78 +def get_accesstoken():
  79 + try:
  80 + with open('config/accessToken.csv','r') as f:
  81 + accseetoken_value = f.read()
  82 + print('读取accseetoken_value成功:{}'.format(accseetoken_value))
  83 + f.close()
  84 + except Exception as e:
  85 + print('读取失败', e)
  86 + accseetoken_value = str(accseetoken_value)
  87 + return accseetoken_value
  88 +
  89 +def get_m_accesstoken():
  90 + try:
  91 + with open('config/m_accessToken.csv','r') as f:
  92 + accseetoken_value = f.read()
  93 + print('读取accseetoken_value成功:{}'.format(accseetoken_value))
  94 + f.close()
  95 + except Exception as e:
  96 + print('读取失败', e)
  97 + accseetoken_value = str(accseetoken_value)
  98 + authorization = 'bearer ' + accseetoken_value
  99 + return authorization
  100 +
  101 +def get_m_refreshtoken():
  102 + try:
  103 + with open('config/m_refresh_token.csv','r') as f:
  104 + m_refreshtoken_value = f.read()
  105 + print('读取m_refreshtoken_value成功:{}'.format(m_refreshtoken_value))
  106 + f.close()
  107 + except Exception as e:
  108 + print('读取失败', e)
  109 + m_refreshtoken_value = str(m_refreshtoken_value)
  110 + authorization = 'bear ' + m_refreshtoken_value
  111 + return authorization
  112 +
  113 +def get_refreshtoken():
  114 + try:
  115 + with open('config/refreshToken.csv','r') as f:
  116 + refreshtoken_value = f.read()
  117 + print('读取refreshtoken_value成功:{}'.format(refreshtoken_value))
  118 + f.close()
  119 + except Exception as e:
  120 + print('读取失败', e)
  121 + refreshtoken_value = str(refreshtoken_value)
  122 + return refreshtoken_value
  123 +
  124 +def get_authcode():
  125 + try:
  126 + with open('config/authCode.csv','r') as f:
  127 + authcode_value = f.read()
  128 + print('读取authcode_value成功:{}'.format(authcode_value))
  129 + f.close()
  130 + except Exception as e:
  131 + print('读取失败', e)
  132 + authcode_value = str(authcode_value)
  133 + return authcode_value
  1 +{
  2 + "testcase":[
  3 + "E:/mmm_auto/partner/testcases/login_testcases.yml"
  4 + ]
  5 +}
  1 +{
  2 + "testcase":[
  3 + "testcases/m_admin_login_testcases.yml"
  4 + ]
  5 +}
此 diff 太大无法显示。
此 diff 太大无法显示。
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-04T14:53:21.546364</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.325 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.5 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>call demo_testcase with data 1</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">214.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:53:22 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc2MDIsImlhdCI6MTU5Mzg3NDQwMiwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDQwMiwidWlkIjoxfQ.UxDe_mYaDvonOU1f98xBizsE5iIJBMmuYrFHBXlHY_8&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>310</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>214.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>204.213</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 新增实际订单</td>
  455 + <td style="text-align:center;width:6em;">60.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 新增实际订单</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/actual/update
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc2MDIsImlhdCI6MTU5Mzg3NDQwMiwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDQwMiwidWlkIjoxfQ.UxDe_mYaDvonOU1f98xBizsE5iIJBMmuYrFHBXlHY_8&#34;,
  506 + &#34;Content-Length&#34;: &#34;368&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;buyer&#34;: &#34;我是买家21&#34;,
  518 + &#34;buyerPhone&#34;: &#34;13459147023&#34;,
  519 + &#34;address&#34;: &#34;福建省福州市收获地址1&#34;,
  520 + &#34;partner&#34;: 29,
  521 + &#34;partnerRatio&#34;: 99.99,
  522 + &#34;salesmanRatio&#34;: 22.11,
  523 + &#34;orderId&#34;: &#34;20200704225321&#34;,
  524 + &#34;orderName&#34;: &#34;20200704225321&#34;,
  525 + &#34;orderNum&#34;: 5000,
  526 + &#34;orderPrice&#34;: 100000000,
  527 + &#34;orderDist&#34;: &#34;福建一区&#34;,
  528 + &#34;orderStatue&#34;: 3
  529 +}</pre>
  530 +
  531 + </td>
  532 + </tr>
  533 +
  534 + </table>
  535 + </div>
  536 +
  537 + <h3>Response:</h3>
  538 + <div style="overflow: auto">
  539 + <table>
  540 +
  541 + <tr>
  542 + <th>ok</th>
  543 + <td>
  544 +
  545 + True
  546 +
  547 + </td>
  548 + </tr>
  549 +
  550 + <tr>
  551 + <th>url</th>
  552 + <td>
  553 +
  554 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/actual/update
  555 +
  556 + </td>
  557 + </tr>
  558 +
  559 + <tr>
  560 + <th>status_code</th>
  561 + <td>
  562 +
  563 + 200
  564 +
  565 + </td>
  566 + </tr>
  567 +
  568 + <tr>
  569 + <th>reason</th>
  570 + <td>
  571 +
  572 + OK
  573 +
  574 + </td>
  575 + </tr>
  576 +
  577 + <tr>
  578 + <th>cookies</th>
  579 + <td>
  580 +
  581 + {}
  582 +
  583 + </td>
  584 + </tr>
  585 +
  586 + <tr>
  587 + <th>encoding</th>
  588 + <td>
  589 +
  590 + utf-8
  591 +
  592 + </td>
  593 + </tr>
  594 +
  595 + <tr>
  596 + <th>headers</th>
  597 + <td>
  598 +
  599 + <pre>{
  600 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:53:22 GMT&#34;,
  601 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  602 + &#34;Content-Length&#34;: &#34;55&#34;,
  603 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  604 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  605 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  606 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  607 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  608 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  609 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  610 +}</pre>
  611 +
  612 + </td>
  613 + </tr>
  614 +
  615 + <tr>
  616 + <th>content_type</th>
  617 + <td>
  618 +
  619 + application/json; charset=utf-8
  620 +
  621 + </td>
  622 + </tr>
  623 +
  624 + <tr>
  625 + <th>body</th>
  626 + <td>
  627 +
  628 +
  629 + <pre>{
  630 + &#34;code&#34;: -1,
  631 + &#34;msg&#34;: &#34;服务异常&#34;,
  632 + &#34;data&#34;: {}
  633 +}</pre>
  634 +
  635 +
  636 + </td>
  637 + </tr>
  638 +
  639 + </table>
  640 + </div>
  641 +
  642 +
  643 + <h3>Validators:</h3>
  644 + <div style="overflow: auto">
  645 +
  646 +
  647 +
  648 +
  649 +
  650 + </div>
  651 +
  652 + <h3>Statistics:</h3>
  653 + <div style="overflow: auto">
  654 + <table>
  655 + <tr>
  656 + <th>content_size(bytes)</th>
  657 + <td>55</td>
  658 + </tr>
  659 + <tr>
  660 + <th>response_time(ms)</th>
  661 + <td>60.0</td>
  662 + </tr>
  663 + <tr>
  664 + <th>elapsed(ms)</th>
  665 + <td>56.931</td>
  666 + </tr>
  667 + </table>
  668 + </div>
  669 +
  670 + </div>
  671 + </div>
  672 + </div>
  673 +
  674 +
  675 +
  676 +
  677 + </td>
  678 + </tr>
  679 +
  680 + </table>
  681 +
  682 +</body>
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-04T14:55:29.449679</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.285 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.5 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>call demo_testcase with data 1</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">193.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:55:30 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc3MzAsImlhdCI6MTU5Mzg3NDUzMCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDUzMCwidWlkIjoxfQ.Z9saetn6R686E7a9ZkSvtmz5DlcDz246j2M5P-wN1Bk&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>310</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>193.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>184.756</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 新增实际订单</td>
  455 + <td style="text-align:center;width:6em;">58.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 新增实际订单</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/actual/update
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc3MzAsImlhdCI6MTU5Mzg3NDUzMCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDUzMCwidWlkIjoxfQ.Z9saetn6R686E7a9ZkSvtmz5DlcDz246j2M5P-wN1Bk&#34;,
  506 + &#34;Content-Length&#34;: &#34;368&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;buyer&#34;: &#34;我是买家29&#34;,
  518 + &#34;buyerPhone&#34;: &#34;13459147023&#34;,
  519 + &#34;address&#34;: &#34;福建省福州市收获地址1&#34;,
  520 + &#34;partner&#34;: 29,
  521 + &#34;partnerRatio&#34;: 99.99,
  522 + &#34;salesmanRatio&#34;: 22.11,
  523 + &#34;orderId&#34;: &#34;20200704225529&#34;,
  524 + &#34;orderName&#34;: &#34;20200704225529&#34;,
  525 + &#34;orderNum&#34;: 5000,
  526 + &#34;orderPrice&#34;: 100000000,
  527 + &#34;orderDist&#34;: &#34;福建一区&#34;,
  528 + &#34;orderStatue&#34;: 3
  529 +}</pre>
  530 +
  531 + </td>
  532 + </tr>
  533 +
  534 + </table>
  535 + </div>
  536 +
  537 + <h3>Response:</h3>
  538 + <div style="overflow: auto">
  539 + <table>
  540 +
  541 + <tr>
  542 + <th>ok</th>
  543 + <td>
  544 +
  545 + True
  546 +
  547 + </td>
  548 + </tr>
  549 +
  550 + <tr>
  551 + <th>url</th>
  552 + <td>
  553 +
  554 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/actual/update
  555 +
  556 + </td>
  557 + </tr>
  558 +
  559 + <tr>
  560 + <th>status_code</th>
  561 + <td>
  562 +
  563 + 200
  564 +
  565 + </td>
  566 + </tr>
  567 +
  568 + <tr>
  569 + <th>reason</th>
  570 + <td>
  571 +
  572 + OK
  573 +
  574 + </td>
  575 + </tr>
  576 +
  577 + <tr>
  578 + <th>cookies</th>
  579 + <td>
  580 +
  581 + {}
  582 +
  583 + </td>
  584 + </tr>
  585 +
  586 + <tr>
  587 + <th>encoding</th>
  588 + <td>
  589 +
  590 + utf-8
  591 +
  592 + </td>
  593 + </tr>
  594 +
  595 + <tr>
  596 + <th>headers</th>
  597 + <td>
  598 +
  599 + <pre>{
  600 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:55:30 GMT&#34;,
  601 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  602 + &#34;Content-Length&#34;: &#34;55&#34;,
  603 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  604 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  605 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  606 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  607 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  608 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  609 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  610 +}</pre>
  611 +
  612 + </td>
  613 + </tr>
  614 +
  615 + <tr>
  616 + <th>content_type</th>
  617 + <td>
  618 +
  619 + application/json; charset=utf-8
  620 +
  621 + </td>
  622 + </tr>
  623 +
  624 + <tr>
  625 + <th>body</th>
  626 + <td>
  627 +
  628 +
  629 + <pre>{
  630 + &#34;code&#34;: -1,
  631 + &#34;msg&#34;: &#34;服务异常&#34;,
  632 + &#34;data&#34;: {}
  633 +}</pre>
  634 +
  635 +
  636 + </td>
  637 + </tr>
  638 +
  639 + </table>
  640 + </div>
  641 +
  642 +
  643 + <h3>Validators:</h3>
  644 + <div style="overflow: auto">
  645 +
  646 +
  647 +
  648 +
  649 +
  650 + </div>
  651 +
  652 + <h3>Statistics:</h3>
  653 + <div style="overflow: auto">
  654 + <table>
  655 + <tr>
  656 + <th>content_size(bytes)</th>
  657 + <td>55</td>
  658 + </tr>
  659 + <tr>
  660 + <th>response_time(ms)</th>
  661 + <td>58.0</td>
  662 + </tr>
  663 + <tr>
  664 + <th>elapsed(ms)</th>
  665 + <td>53.305</td>
  666 + </tr>
  667 + </table>
  668 + </div>
  669 +
  670 + </div>
  671 + </div>
  672 + </div>
  673 +
  674 +
  675 +
  676 +
  677 + </td>
  678 + </tr>
  679 +
  680 + </table>
  681 +
  682 +</body>
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-04T14:57:33.571779</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.338 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.5 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>call demo_testcase with data 1</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">213.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:57:34 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc4NTQsImlhdCI6MTU5Mzg3NDY1NCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDY1NCwidWlkIjoxfQ.suICHO1_qAjGyM1dQz5LamZ_sAh9CxIYPjeiKnVFs-c&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>310</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>213.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>206.029</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 新增实际订单</td>
  455 + <td style="text-align:center;width:6em;">59.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 新增实际订单</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/actual/update
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc4NTQsImlhdCI6MTU5Mzg3NDY1NCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDY1NCwidWlkIjoxfQ.suICHO1_qAjGyM1dQz5LamZ_sAh9CxIYPjeiKnVFs-c&#34;,
  506 + &#34;Content-Length&#34;: &#34;367&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;buyer&#34;: &#34;我是买家33&#34;,
  518 + &#34;buyerPhone&#34;: &#34;13459147023&#34;,
  519 + &#34;address&#34;: &#34;福建省福州市收获地址1&#34;,
  520 + &#34;partner&#34;: 2,
  521 + &#34;partnerRatio&#34;: 99.99,
  522 + &#34;salesmanRatio&#34;: 22.11,
  523 + &#34;orderId&#34;: &#34;20200704225733&#34;,
  524 + &#34;orderName&#34;: &#34;20200704225733&#34;,
  525 + &#34;orderNum&#34;: 5000,
  526 + &#34;orderPrice&#34;: 100000000,
  527 + &#34;orderDist&#34;: &#34;福建一区&#34;,
  528 + &#34;orderStatue&#34;: 3
  529 +}</pre>
  530 +
  531 + </td>
  532 + </tr>
  533 +
  534 + </table>
  535 + </div>
  536 +
  537 + <h3>Response:</h3>
  538 + <div style="overflow: auto">
  539 + <table>
  540 +
  541 + <tr>
  542 + <th>ok</th>
  543 + <td>
  544 +
  545 + True
  546 +
  547 + </td>
  548 + </tr>
  549 +
  550 + <tr>
  551 + <th>url</th>
  552 + <td>
  553 +
  554 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/actual/update
  555 +
  556 + </td>
  557 + </tr>
  558 +
  559 + <tr>
  560 + <th>status_code</th>
  561 + <td>
  562 +
  563 + 200
  564 +
  565 + </td>
  566 + </tr>
  567 +
  568 + <tr>
  569 + <th>reason</th>
  570 + <td>
  571 +
  572 + OK
  573 +
  574 + </td>
  575 + </tr>
  576 +
  577 + <tr>
  578 + <th>cookies</th>
  579 + <td>
  580 +
  581 + {}
  582 +
  583 + </td>
  584 + </tr>
  585 +
  586 + <tr>
  587 + <th>encoding</th>
  588 + <td>
  589 +
  590 + utf-8
  591 +
  592 + </td>
  593 + </tr>
  594 +
  595 + <tr>
  596 + <th>headers</th>
  597 + <td>
  598 +
  599 + <pre>{
  600 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:57:34 GMT&#34;,
  601 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  602 + &#34;Content-Length&#34;: &#34;44&#34;,
  603 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  604 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  605 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  606 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  607 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  608 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  609 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  610 +}</pre>
  611 +
  612 + </td>
  613 + </tr>
  614 +
  615 + <tr>
  616 + <th>content_type</th>
  617 + <td>
  618 +
  619 + application/json; charset=utf-8
  620 +
  621 + </td>
  622 + </tr>
  623 +
  624 + <tr>
  625 + <th>body</th>
  626 + <td>
  627 +
  628 +
  629 + <pre>{
  630 + &#34;code&#34;: 0,
  631 + &#34;msg&#34;: &#34;ok&#34;,
  632 + &#34;data&#34;: {}
  633 +}</pre>
  634 +
  635 +
  636 + </td>
  637 + </tr>
  638 +
  639 + </table>
  640 + </div>
  641 +
  642 +
  643 + <h3>Validators:</h3>
  644 + <div style="overflow: auto">
  645 +
  646 +
  647 +
  648 +
  649 +
  650 + </div>
  651 +
  652 + <h3>Statistics:</h3>
  653 + <div style="overflow: auto">
  654 + <table>
  655 + <tr>
  656 + <th>content_size(bytes)</th>
  657 + <td>44</td>
  658 + </tr>
  659 + <tr>
  660 + <th>response_time(ms)</th>
  661 + <td>59.0</td>
  662 + </tr>
  663 + <tr>
  664 + <th>elapsed(ms)</th>
  665 + <td>56.028</td>
  666 + </tr>
  667 + </table>
  668 + </div>
  669 +
  670 + </div>
  671 + </div>
  672 + </div>
  673 +
  674 +
  675 +
  676 +
  677 + </td>
  678 + </tr>
  679 +
  680 + </table>
  681 +
  682 +</body>
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-04T14:59:08.560212</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.245 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.5 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>call demo_testcase with data 1</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">158.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:59:09 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc5NDksImlhdCI6MTU5Mzg3NDc0OSwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDc0OSwidWlkIjoxfQ.2nZ_BgoEU8lQTbn-LGxW7SJgb0HIfa94-RQ463Qot9M&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>310</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>158.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>151.469</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 新增意向订单</td>
  455 + <td style="text-align:center;width:6em;">58.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 新增意向订单</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/purpose/update
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTc5NDksImlhdCI6MTU5Mzg3NDc0OSwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDc0OSwidWlkIjoxfQ.2nZ_BgoEU8lQTbn-LGxW7SJgb0HIfa94-RQ463Qot9M&#34;,
  506 + &#34;Content-Length&#34;: &#34;347&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;buyer&#34;: &#34;我是买家8&#34;,
  518 + &#34;buyerPhone&#34;: &#34;13459147023&#34;,
  519 + &#34;address&#34;: &#34;福建省福州市收获地址1&#34;,
  520 + &#34;partner&#34;: 2,
  521 + &#34;partnerRatio&#34;: 99.19,
  522 + &#34;salesmanRatio&#34;: 0.99,
  523 + &#34;orderId&#34;: &#34;20200704225908&#34;,
  524 + &#34;orderName&#34;: &#34;20200704225908&#34;,
  525 + &#34;orderNum&#34;: 500,
  526 + &#34;orderPrice&#34;: 1000000000,
  527 + &#34;orderDist&#34;: &#34;福建一区&#34;
  528 +}</pre>
  529 +
  530 + </td>
  531 + </tr>
  532 +
  533 + </table>
  534 + </div>
  535 +
  536 + <h3>Response:</h3>
  537 + <div style="overflow: auto">
  538 + <table>
  539 +
  540 + <tr>
  541 + <th>ok</th>
  542 + <td>
  543 +
  544 + True
  545 +
  546 + </td>
  547 + </tr>
  548 +
  549 + <tr>
  550 + <th>url</th>
  551 + <td>
  552 +
  553 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/purpose/update
  554 +
  555 + </td>
  556 + </tr>
  557 +
  558 + <tr>
  559 + <th>status_code</th>
  560 + <td>
  561 +
  562 + 200
  563 +
  564 + </td>
  565 + </tr>
  566 +
  567 + <tr>
  568 + <th>reason</th>
  569 + <td>
  570 +
  571 + OK
  572 +
  573 + </td>
  574 + </tr>
  575 +
  576 + <tr>
  577 + <th>cookies</th>
  578 + <td>
  579 +
  580 + {}
  581 +
  582 + </td>
  583 + </tr>
  584 +
  585 + <tr>
  586 + <th>encoding</th>
  587 + <td>
  588 +
  589 + utf-8
  590 +
  591 + </td>
  592 + </tr>
  593 +
  594 + <tr>
  595 + <th>headers</th>
  596 + <td>
  597 +
  598 + <pre>{
  599 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 14:59:09 GMT&#34;,
  600 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  601 + &#34;Content-Length&#34;: &#34;44&#34;,
  602 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  603 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  604 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  605 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  606 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  607 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  608 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  609 +}</pre>
  610 +
  611 + </td>
  612 + </tr>
  613 +
  614 + <tr>
  615 + <th>content_type</th>
  616 + <td>
  617 +
  618 + application/json; charset=utf-8
  619 +
  620 + </td>
  621 + </tr>
  622 +
  623 + <tr>
  624 + <th>body</th>
  625 + <td>
  626 +
  627 +
  628 + <pre>{
  629 + &#34;code&#34;: 0,
  630 + &#34;msg&#34;: &#34;ok&#34;,
  631 + &#34;data&#34;: {}
  632 +}</pre>
  633 +
  634 +
  635 + </td>
  636 + </tr>
  637 +
  638 + </table>
  639 + </div>
  640 +
  641 +
  642 + <h3>Validators:</h3>
  643 + <div style="overflow: auto">
  644 +
  645 +
  646 +
  647 +
  648 +
  649 + </div>
  650 +
  651 + <h3>Statistics:</h3>
  652 + <div style="overflow: auto">
  653 + <table>
  654 + <tr>
  655 + <th>content_size(bytes)</th>
  656 + <td>44</td>
  657 + </tr>
  658 + <tr>
  659 + <th>response_time(ms)</th>
  660 + <td>58.0</td>
  661 + </tr>
  662 + <tr>
  663 + <th>elapsed(ms)</th>
  664 + <td>54.452</td>
  665 + </tr>
  666 + </table>
  667 + </div>
  668 +
  669 + </div>
  670 + </div>
  671 + </div>
  672 +
  673 +
  674 +
  675 +
  676 + </td>
  677 + </tr>
  678 +
  679 + </table>
  680 +
  681 +</body>
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-04T15:01:02.221713</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.194 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.5 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>call demo_testcase with data 1</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">107.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 15:01:02 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTgwNjIsImlhdCI6MTU5Mzg3NDg2MiwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDg2MiwidWlkIjoxfQ.t-frysjdFqUWASwd7CBrw0HtiAxRbVX7CORhYnmDpMI&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>310</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>107.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>98.99</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 新增意向订单</td>
  455 + <td style="text-align:center;width:6em;">41.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 新增意向订单</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/purpose/update
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTgwNjIsImlhdCI6MTU5Mzg3NDg2MiwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDg2MiwidWlkIjoxfQ.t-frysjdFqUWASwd7CBrw0HtiAxRbVX7CORhYnmDpMI&#34;,
  506 + &#34;Content-Length&#34;: &#34;347&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;buyer&#34;: &#34;我是买家2&#34;,
  518 + &#34;buyerPhone&#34;: &#34;13459147023&#34;,
  519 + &#34;address&#34;: &#34;福建省福州市收获地址1&#34;,
  520 + &#34;partner&#34;: 2,
  521 + &#34;partnerRatio&#34;: 99.19,
  522 + &#34;salesmanRatio&#34;: 0.99,
  523 + &#34;orderId&#34;: &#34;20200704230102&#34;,
  524 + &#34;orderName&#34;: &#34;20200704230102&#34;,
  525 + &#34;orderNum&#34;: 500,
  526 + &#34;orderPrice&#34;: 1000000000,
  527 + &#34;orderDist&#34;: &#34;福建一区&#34;
  528 +}</pre>
  529 +
  530 + </td>
  531 + </tr>
  532 +
  533 + </table>
  534 + </div>
  535 +
  536 + <h3>Response:</h3>
  537 + <div style="overflow: auto">
  538 + <table>
  539 +
  540 + <tr>
  541 + <th>ok</th>
  542 + <td>
  543 +
  544 + True
  545 +
  546 + </td>
  547 + </tr>
  548 +
  549 + <tr>
  550 + <th>url</th>
  551 + <td>
  552 +
  553 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/purpose/update
  554 +
  555 + </td>
  556 + </tr>
  557 +
  558 + <tr>
  559 + <th>status_code</th>
  560 + <td>
  561 +
  562 + 200
  563 +
  564 + </td>
  565 + </tr>
  566 +
  567 + <tr>
  568 + <th>reason</th>
  569 + <td>
  570 +
  571 + OK
  572 +
  573 + </td>
  574 + </tr>
  575 +
  576 + <tr>
  577 + <th>cookies</th>
  578 + <td>
  579 +
  580 + {}
  581 +
  582 + </td>
  583 + </tr>
  584 +
  585 + <tr>
  586 + <th>encoding</th>
  587 + <td>
  588 +
  589 + utf-8
  590 +
  591 + </td>
  592 + </tr>
  593 +
  594 + <tr>
  595 + <th>headers</th>
  596 + <td>
  597 +
  598 + <pre>{
  599 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 15:01:02 GMT&#34;,
  600 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  601 + &#34;Content-Length&#34;: &#34;44&#34;,
  602 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  603 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  604 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  605 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  606 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  607 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  608 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  609 +}</pre>
  610 +
  611 + </td>
  612 + </tr>
  613 +
  614 + <tr>
  615 + <th>content_type</th>
  616 + <td>
  617 +
  618 + application/json; charset=utf-8
  619 +
  620 + </td>
  621 + </tr>
  622 +
  623 + <tr>
  624 + <th>body</th>
  625 + <td>
  626 +
  627 +
  628 + <pre>{
  629 + &#34;code&#34;: 0,
  630 + &#34;msg&#34;: &#34;ok&#34;,
  631 + &#34;data&#34;: {}
  632 +}</pre>
  633 +
  634 +
  635 + </td>
  636 + </tr>
  637 +
  638 + </table>
  639 + </div>
  640 +
  641 +
  642 + <h3>Validators:</h3>
  643 + <div style="overflow: auto">
  644 +
  645 +
  646 +
  647 +
  648 +
  649 + </div>
  650 +
  651 + <h3>Statistics:</h3>
  652 + <div style="overflow: auto">
  653 + <table>
  654 + <tr>
  655 + <th>content_size(bytes)</th>
  656 + <td>44</td>
  657 + </tr>
  658 + <tr>
  659 + <th>response_time(ms)</th>
  660 + <td>41.0</td>
  661 + </tr>
  662 + <tr>
  663 + <th>elapsed(ms)</th>
  664 + <td>36.671</td>
  665 + </tr>
  666 + </table>
  667 + </div>
  668 +
  669 + </div>
  670 + </div>
  671 + </div>
  672 +
  673 +
  674 +
  675 +
  676 + </td>
  677 + </tr>
  678 +
  679 + </table>
  680 +
  681 +</body>
  1 +<head>
  2 + <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  3 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4 + <title> - TestReport</title>
  5 + <style>
  6 + body {
  7 + background-color: #f2f2f2;
  8 + color: #333;
  9 + margin: 0 auto;
  10 + width: 960px;
  11 + }
  12 + #summary {
  13 + width: 960px;
  14 + margin-bottom: 20px;
  15 + }
  16 + #summary th {
  17 + background-color: skyblue;
  18 + padding: 5px 12px;
  19 + }
  20 + #summary td {
  21 + background-color: lightblue;
  22 + text-align: center;
  23 + padding: 4px 8px;
  24 + }
  25 + .details {
  26 + width: 960px;
  27 + margin-bottom: 20px;
  28 + }
  29 + .details th {
  30 + background-color: skyblue;
  31 + padding: 5px 12px;
  32 + }
  33 + .details tr .passed {
  34 + background-color: lightgreen;
  35 + }
  36 + .details tr .failed {
  37 + background-color: red;
  38 + }
  39 + .details tr .unchecked {
  40 + background-color: gray;
  41 + }
  42 + .details td {
  43 + background-color: lightblue;
  44 + padding: 5px 12px;
  45 + }
  46 + .details .detail {
  47 + background-color: lightgrey;
  48 + font-size: smaller;
  49 + padding: 5px 10px;
  50 + line-height: 20px;
  51 + text-align: left;
  52 + }
  53 + .details .success {
  54 + background-color: greenyellow;
  55 + }
  56 + .details .error {
  57 + background-color: red;
  58 + }
  59 + .details .failure {
  60 + background-color: salmon;
  61 + }
  62 + .details .skipped {
  63 + background-color: gray;
  64 + }
  65 +
  66 + .button {
  67 + font-size: 1em;
  68 + padding: 6px;
  69 + width: 4em;
  70 + text-align: center;
  71 + background-color: #06d85f;
  72 + border-radius: 20px/50px;
  73 + cursor: pointer;
  74 + transition: all 0.3s ease-out;
  75 + }
  76 + a.button{
  77 + color: gray;
  78 + text-decoration: none;
  79 + display: inline-block;
  80 + }
  81 + .button:hover {
  82 + background: #2cffbd;
  83 + }
  84 +
  85 + .overlay {
  86 + position: fixed;
  87 + top: 0;
  88 + bottom: 0;
  89 + left: 0;
  90 + right: 0;
  91 + background: rgba(0, 0, 0, 0.7);
  92 + transition: opacity 500ms;
  93 + visibility: hidden;
  94 + opacity: 0;
  95 + line-height: 25px;
  96 + }
  97 + .overlay:target {
  98 + visibility: visible;
  99 + opacity: 1;
  100 + }
  101 +
  102 + .popup {
  103 + margin: 70px auto;
  104 + padding: 20px;
  105 + background: #fff;
  106 + border-radius: 10px;
  107 + width: 50%;
  108 + position: relative;
  109 + transition: all 3s ease-in-out;
  110 + }
  111 +
  112 + .popup h2 {
  113 + margin-top: 0;
  114 + color: #333;
  115 + font-family: Tahoma, Arial, sans-serif;
  116 + }
  117 + .popup .close {
  118 + position: absolute;
  119 + top: 20px;
  120 + right: 30px;
  121 + transition: all 200ms;
  122 + font-size: 30px;
  123 + font-weight: bold;
  124 + text-decoration: none;
  125 + color: #333;
  126 + }
  127 + .popup .close:hover {
  128 + color: #06d85f;
  129 + }
  130 + .popup .content {
  131 + max-height: 80%;
  132 + overflow: auto;
  133 + text-align: left;
  134 + }
  135 + .popup .separator {
  136 + color:royalblue
  137 + }
  138 +
  139 + @media screen and (max-width: 700px) {
  140 + .box {
  141 + width: 70%;
  142 + }
  143 + .popup {
  144 + width: 70%;
  145 + }
  146 + }
  147 +
  148 + </style>
  149 +</head>
  150 +
  151 +<body>
  152 + <h1>Test Report: </h1>
  153 +
  154 + <h2>Summary</h2>
  155 + <table id="summary">
  156 + <tr>
  157 + <th>START AT</th>
  158 + <td colspan="4">2020-07-04T15:01:27.659168</td>
  159 + </tr>
  160 + <tr>
  161 + <th>DURATION</th>
  162 + <td colspan="4">0.204 seconds</td>
  163 + </tr>
  164 + <tr>
  165 + <th>PLATFORM</th>
  166 + <td>HttpRunner 2.5.5 </td>
  167 + <td>CPython 3.8.1 </td>
  168 + <td colspan="2">Windows-7-6.1.7601-SP1</td>
  169 + </tr>
  170 + <tr>
  171 + <th>STAT</th>
  172 + <th colspan="2">TESTCASES (success/fail)</th>
  173 + <th colspan="2">TESTSTEPS (success/fail/error/skip)</th>
  174 + </tr>
  175 + <tr>
  176 + <td>total (details) =></td>
  177 + <td colspan="2">1 (1/0)</td>
  178 + <td colspan="2">2 (2/0/0/0)</td>
  179 + </tr>
  180 + </table>
  181 +
  182 + <h2>Details</h2>
  183 +
  184 +
  185 +
  186 + <h3>call demo_testcase with data 1</h3>
  187 + <table id="suite_1" class="details">
  188 + <tr>
  189 + <td>TOTAL: 2</td>
  190 + <td>SUCCESS: 2</td>
  191 + <td>FAILED: 0</td>
  192 + <td>ERROR: 0</td>
  193 + <td>SKIPPED: 0</td>
  194 + </tr>
  195 + <tr>
  196 + <th>Status</th>
  197 + <th colspan="2">Name</th>
  198 + <th>Response Time</th>
  199 + <th>Detail</th>
  200 + </tr>
  201 +
  202 +
  203 +
  204 +
  205 + <tr id="record_1_1">
  206 + <th class="success" style="width:5em;">success</th>
  207 + <td colspan="2">10000000001 登录系统</td>
  208 + <td style="text-align:center;width:6em;">116.01 ms</td>
  209 + <td class="detail">
  210 +
  211 +
  212 +
  213 + <a class="button" href="#popup_log_1_1_1">log-1</a>
  214 + <div id="popup_log_1_1_1" class="overlay">
  215 + <div class="popup">
  216 + <h2>Request and Response data</h2>
  217 + <a class="close" href="#record_1_1_1">&times;</a>
  218 +
  219 + <div class="content">
  220 + <h3>Name: 10000000001 登录系统</h3>
  221 +
  222 +
  223 +
  224 +
  225 +
  226 + <h3>Request:</h3>
  227 + <div style="overflow: auto">
  228 + <table>
  229 +
  230 + <tr>
  231 + <th>url</th>
  232 + <td>
  233 +
  234 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  235 +
  236 + </td>
  237 + </tr>
  238 +
  239 + <tr>
  240 + <th>method</th>
  241 + <td>
  242 +
  243 + POST
  244 +
  245 + </td>
  246 + </tr>
  247 +
  248 + <tr>
  249 + <th>headers</th>
  250 + <td>
  251 +
  252 + <pre>{
  253 + &#34;User-Agent&#34;: &#34;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36&#34;,
  254 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  255 + &#34;Accept&#34;: &#34;*/*&#34;,
  256 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  257 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  258 + &#34;Content-Length&#34;: &#34;83&#34;
  259 +}</pre>
  260 +
  261 + </td>
  262 + </tr>
  263 +
  264 + <tr>
  265 + <th>body</th>
  266 + <td>
  267 +
  268 + <pre>{
  269 + &#34;password&#34;: &#34;7c4a8d09ca3762af61e59520943dc26494f8941b&#34;,
  270 + &#34;username&#34;: &#34;10000000001&#34;
  271 +}</pre>
  272 +
  273 + </td>
  274 + </tr>
  275 +
  276 + </table>
  277 + </div>
  278 +
  279 + <h3>Response:</h3>
  280 + <div style="overflow: auto">
  281 + <table>
  282 +
  283 + <tr>
  284 + <th>ok</th>
  285 + <td>
  286 +
  287 + True
  288 +
  289 + </td>
  290 + </tr>
  291 +
  292 + <tr>
  293 + <th>url</th>
  294 + <td>
  295 +
  296 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/auth/login
  297 +
  298 + </td>
  299 + </tr>
  300 +
  301 + <tr>
  302 + <th>status_code</th>
  303 + <td>
  304 +
  305 + 200
  306 +
  307 + </td>
  308 + </tr>
  309 +
  310 + <tr>
  311 + <th>reason</th>
  312 + <td>
  313 +
  314 + OK
  315 +
  316 + </td>
  317 + </tr>
  318 +
  319 + <tr>
  320 + <th>cookies</th>
  321 + <td>
  322 +
  323 + {}
  324 +
  325 + </td>
  326 + </tr>
  327 +
  328 + <tr>
  329 + <th>encoding</th>
  330 + <td>
  331 +
  332 + utf-8
  333 +
  334 + </td>
  335 + </tr>
  336 +
  337 + <tr>
  338 + <th>headers</th>
  339 + <td>
  340 +
  341 + <pre>{
  342 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 15:01:28 GMT&#34;,
  343 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  344 + &#34;Transfer-Encoding&#34;: &#34;chunked&#34;,
  345 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  346 + &#34;Vary&#34;: &#34;Accept-Encoding, Accept-Encoding&#34;,
  347 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  348 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  349 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  350 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  351 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  352 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;,
  353 + &#34;Content-Encoding&#34;: &#34;gzip&#34;
  354 +}</pre>
  355 +
  356 + </td>
  357 + </tr>
  358 +
  359 + <tr>
  360 + <th>content_type</th>
  361 + <td>
  362 +
  363 + application/json; charset=utf-8
  364 +
  365 + </td>
  366 + </tr>
  367 +
  368 + <tr>
  369 + <th>body</th>
  370 + <td>
  371 +
  372 +
  373 + <pre>{
  374 + &#34;code&#34;: 0,
  375 + &#34;msg&#34;: &#34;ok&#34;,
  376 + &#34;data&#34;: {
  377 + &#34;access&#34;: {
  378 + &#34;accessToken&#34;: &#34;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTgwODgsImlhdCI6MTU5Mzg3NDg4OCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDg4OCwidWlkIjoxfQ.s8nznrxx2-Vumr4eAZbLXfiSjAT-C2nuw4b0ku7hcKg&#34;,
  379 + &#34;expiresIn&#34;: 43200
  380 + }
  381 + }
  382 +}</pre>
  383 +
  384 +
  385 + </td>
  386 + </tr>
  387 +
  388 + </table>
  389 + </div>
  390 +
  391 +
  392 + <h3>Validators:</h3>
  393 + <div style="overflow: auto">
  394 +
  395 +
  396 + <table>
  397 + <tr>
  398 + <th>check</th>
  399 + <th>comparator</th>
  400 + <th>expect value</th>
  401 + <th>actual value</th>
  402 + </tr>
  403 +
  404 + <tr>
  405 +
  406 + <td class="passed">
  407 +
  408 + content.msg
  409 + </td>
  410 + <td>equals</td>
  411 + <td>ok</td>
  412 + <td>ok</td>
  413 + </tr>
  414 +
  415 + </table>
  416 +
  417 +
  418 +
  419 +
  420 + </div>
  421 +
  422 + <h3>Statistics:</h3>
  423 + <div style="overflow: auto">
  424 + <table>
  425 + <tr>
  426 + <th>content_size(bytes)</th>
  427 + <td>310</td>
  428 + </tr>
  429 + <tr>
  430 + <th>response_time(ms)</th>
  431 + <td>116.01</td>
  432 + </tr>
  433 + <tr>
  434 + <th>elapsed(ms)</th>
  435 + <td>109.639</td>
  436 + </tr>
  437 + </table>
  438 + </div>
  439 +
  440 + </div>
  441 + </div>
  442 + </div>
  443 +
  444 +
  445 +
  446 +
  447 + </td>
  448 + </tr>
  449 +
  450 +
  451 +
  452 + <tr id="record_1_2">
  453 + <th class="success" style="width:5em;">success</th>
  454 + <td colspan="2">10000000001 新增意向订单</td>
  455 + <td style="text-align:center;width:6em;">37.00 ms</td>
  456 + <td class="detail">
  457 +
  458 +
  459 +
  460 + <a class="button" href="#popup_log_1_2_1">log-1</a>
  461 + <div id="popup_log_1_2_1" class="overlay">
  462 + <div class="popup">
  463 + <h2>Request and Response data</h2>
  464 + <a class="close" href="#record_1_2_1">&times;</a>
  465 +
  466 + <div class="content">
  467 + <h3>Name: 10000000001 新增意向订单</h3>
  468 +
  469 +
  470 +
  471 +
  472 +
  473 + <h3>Request:</h3>
  474 + <div style="overflow: auto">
  475 + <table>
  476 +
  477 + <tr>
  478 + <th>url</th>
  479 + <td>
  480 +
  481 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/purpose/update
  482 +
  483 + </td>
  484 + </tr>
  485 +
  486 + <tr>
  487 + <th>method</th>
  488 + <td>
  489 +
  490 + POST
  491 +
  492 + </td>
  493 + </tr>
  494 +
  495 + <tr>
  496 + <th>headers</th>
  497 + <td>
  498 +
  499 + <pre>{
  500 + &#34;User-Agent&#34;: &#34;okhttp/3.12.3&#34;,
  501 + &#34;Accept-Encoding&#34;: &#34;gzip, deflate&#34;,
  502 + &#34;Accept&#34;: &#34;*/*&#34;,
  503 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  504 + &#34;Content-Type&#34;: &#34;application/json;charset=utf-8&#34;,
  505 + &#34;Authorization&#34;: &#34;Bearer bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM5MTgwODgsImlhdCI6MTU5Mzg3NDg4OCwiaXNzIjoibW1tX3BhcnRuZXJtZyIsIm5iZiI6MTU5Mzg3NDg4OCwidWlkIjoxfQ.s8nznrxx2-Vumr4eAZbLXfiSjAT-C2nuw4b0ku7hcKg&#34;,
  506 + &#34;Content-Length&#34;: &#34;348&#34;
  507 +}</pre>
  508 +
  509 + </td>
  510 + </tr>
  511 +
  512 + <tr>
  513 + <th>body</th>
  514 + <td>
  515 +
  516 + <pre>{
  517 + &#34;buyer&#34;: &#34;我是买家27&#34;,
  518 + &#34;buyerPhone&#34;: &#34;13459147023&#34;,
  519 + &#34;address&#34;: &#34;福建省福州市收获地址1&#34;,
  520 + &#34;partner&#34;: 2,
  521 + &#34;partnerRatio&#34;: 99.19,
  522 + &#34;salesmanRatio&#34;: 0.99,
  523 + &#34;orderId&#34;: &#34;20200704230127&#34;,
  524 + &#34;orderName&#34;: &#34;20200704230127&#34;,
  525 + &#34;orderNum&#34;: 500,
  526 + &#34;orderPrice&#34;: 1000000000,
  527 + &#34;orderDist&#34;: &#34;福建一区&#34;
  528 +}</pre>
  529 +
  530 + </td>
  531 + </tr>
  532 +
  533 + </table>
  534 + </div>
  535 +
  536 + <h3>Response:</h3>
  537 + <div style="overflow: auto">
  538 + <table>
  539 +
  540 + <tr>
  541 + <th>ok</th>
  542 + <td>
  543 +
  544 + True
  545 +
  546 + </td>
  547 + </tr>
  548 +
  549 + <tr>
  550 + <th>url</th>
  551 + <td>
  552 +
  553 + https://public-interface.fjmaimaimai.com/mmm-partnermg/v1/order/purpose/update
  554 +
  555 + </td>
  556 + </tr>
  557 +
  558 + <tr>
  559 + <th>status_code</th>
  560 + <td>
  561 +
  562 + 200
  563 +
  564 + </td>
  565 + </tr>
  566 +
  567 + <tr>
  568 + <th>reason</th>
  569 + <td>
  570 +
  571 + OK
  572 +
  573 + </td>
  574 + </tr>
  575 +
  576 + <tr>
  577 + <th>cookies</th>
  578 + <td>
  579 +
  580 + {}
  581 +
  582 + </td>
  583 + </tr>
  584 +
  585 + <tr>
  586 + <th>encoding</th>
  587 + <td>
  588 +
  589 + utf-8
  590 +
  591 + </td>
  592 + </tr>
  593 +
  594 + <tr>
  595 + <th>headers</th>
  596 + <td>
  597 +
  598 + <pre>{
  599 + &#34;Date&#34;: &#34;Sat, 04 Jul 2020 15:01:28 GMT&#34;,
  600 + &#34;Content-Type&#34;: &#34;application/json; charset=utf-8&#34;,
  601 + &#34;Content-Length&#34;: &#34;44&#34;,
  602 + &#34;Connection&#34;: &#34;keep-alive&#34;,
  603 + &#34;Access-Control-Allow-Credentials&#34;: &#34;true&#34;,
  604 + &#34;Access-Control-Allow-Headers&#34;: &#34;Origin,Authorization,Access-Control-Allow-Origin,Content-Type,x-requested-with&#34;,
  605 + &#34;Access-Control-Allow-Methods&#34;: &#34;*&#34;,
  606 + &#34;Access-Control-Allow-Origin&#34;: &#34;*&#34;,
  607 + &#34;Access-Control-Expose-Headers&#34;: &#34;Content-Length&#34;,
  608 + &#34;Strict-Transport-Security&#34;: &#34;max-age=15724800; includeSubDomains&#34;
  609 +}</pre>
  610 +
  611 + </td>
  612 + </tr>
  613 +
  614 + <tr>
  615 + <th>content_type</th>
  616 + <td>
  617 +
  618 + application/json; charset=utf-8
  619 +
  620 + </td>
  621 + </tr>
  622 +
  623 + <tr>
  624 + <th>body</th>
  625 + <td>
  626 +
  627 +
  628 + <pre>{
  629 + &#34;code&#34;: 0,
  630 + &#34;msg&#34;: &#34;ok&#34;,
  631 + &#34;data&#34;: {}
  632 +}</pre>
  633 +
  634 +
  635 + </td>
  636 + </tr>
  637 +
  638 + </table>
  639 + </div>
  640 +
  641 +
  642 + <h3>Validators:</h3>
  643 + <div style="overflow: auto">
  644 +
  645 +
  646 +
  647 +
  648 +
  649 + </div>
  650 +
  651 + <h3>Statistics:</h3>
  652 + <div style="overflow: auto">
  653 + <table>
  654 + <tr>
  655 + <th>content_size(bytes)</th>
  656 + <td>44</td>
  657 + </tr>
  658 + <tr>
  659 + <th>response_time(ms)</th>
  660 + <td>37.0</td>
  661 + </tr>
  662 + <tr>
  663 + <th>elapsed(ms)</th>
  664 + <td>33.911</td>
  665 + </tr>
  666 + </table>
  667 + </div>
  668 +
  669 + </div>
  670 + </div>
  671 + </div>
  672 +
  673 +
  674 +
  675 +
  676 + </td>
  677 + </tr>
  678 +
  679 + </table>
  680 +
  681 +</body>