httprunner、インターフェース間のデータ転送、エスケープ記号\の追加、次のインターフェースの異常動作

最初のインターフェース

コンテンツに戻る

headers:{'Access-Control-Allow-Headers': 'X-Requested-With、accept、content-type'、 'Access-Control-Allow-Methods': 'GET、HEAD、POST、PUT、DELETE、TRACE、 OPTIONS、PATCH '、' Access-Control-Allow-Creden
tials ':' true '、' Content-Type ':' application / json; charset = UTF-8 '、' Transfer-Encoding ':' chunked '、' Date ':'木曜日、2020年4月16日03:41:59 GMT '}
content_type:' application / json; charset = UTF-8 '
body:{' status ':200、' msg ':'操作成功! '、' timestamp ':1587008519540、' execTime ':1587008519359、' successData ':{' AUTO_MYSQL_1587008056 :: sakila ':[' actor '、' address '、' category '、' city '、' city_ta
rget '、' country '、'顧客」、「フィルム」、「フィルムアクター」、「フィルムカテゴリ」、「フィルムテキスト」、「在庫」、「言語」、「支払い」、「レンタル」、「sms_code_10」、「sms_code_1000」、「sms_code_200」、「スタッフ」 、「ストア」、「actor_info」、「
customer_list '、' film_list '、' nicer_but_slower_film_list '、' sales_by_film_category '、' sales_by_store '、' staff_list ']}、' errorData ':なし、' errorMsg ':なし}

正規表現を使用して抽出する

2020-04-16 11:34:33.955 | デバッグ| httprunner.response:extract_field:272-抽出:(\ [。+ \])=> ["actor"、 "address"、 "category"、 "city"、 "city_target"、 "country"、 "customer"、 " film "、" film_actor "、" film_category "、" f
ilm_text "、" inventory "、" language "、" payment "、" rental "、" sms_code_10 "、" sms_code_1000 "、" sms_code_200 "、" staff "、" store "、" actor_info "、" customer_list "、" film_list "、" nicer_but_slower_film_list "、" sales_by_film_category "、"
sales_by_store "、" staff_list "]

 

2番目のインターフェース

2020-04-16 11:34:33.973 | 情報| httprunner.report.html.result:startTest:30-批量删除表
2020-04-16 11:34:33.975 | 情報| httprunner.runner:_run_test:242-DELETE http://172.16.160.167:28080/rest/meta2/table/AUTO_MYSQL_1587008056/sakila/batchDelTab 
2020-04-16 11:34:33.976 | デバッグ| httprunner.runner:_run_test:243-リクエストkwargs(raw):{'headers':{'Content-Type': 'application / json; charset = UTF-8'、 'User-Agent': 'Mozilla / 5.0(Windows NT 10.0; Win64; x6 
4)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 80.0.3987.163 Safari / 537.36 '、' HRUN-Request-ID ':' 191ce27d-3a9b-4b3b-9d49-ae6cbd01e20c '}、' json ':' ["actor"、 "address"、 "category"、 "city"、 "city_target"、 "country"、
「顧客」、「フィルム」、「フィルムアクター」、「フィルムカテゴリ」、「フィルムテキスト」、「在庫」、「言語」、「支払い」、「レンタル」、「sms_code_10」、「sms_code_1000」、「sms_code_200」、「スタッフ」 "、" store "、" actor_info "、" customer_list "、" film_list "、" 
> DELETE http:// 172.16.160.167:28080/rest/meta2/table/AUTO_MYSQL_1587008056/sakila/batchDelTab 
> kwargs:{'headers':{'Content-Type': 'application / json; charset = UTF-8'、 'User-Agent': 'Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 80.0.3987。163 Safari / 537.36 '、' HR
2020-04-16 11:34:33.983 | デバッグ| httprunner.client:_send_request_safe_mode:238-処理されたリクエスト: 
2020-04-16 11:34:40.991 | デバッグ| httprunner.client:log_print:25- 
==================リクエストの詳細==================
UN-Request-ID ':' 191ce27d-3a9b-4b3b-9d49-ae6cbd01e20c '}、' json ':' ["actor"、 "address"、 "category"、 "city"、 "city_target"、 "country"、 「顧客」、「フィルム」、「フィルムアクター」、「フィルムカテゴリ」、「フィルムテキスト」、「在庫」、「言語」、
「支払い」、「レンタル」、「sms_code_10」、「sms_code_1000」、「sms_code_200」、「スタッフ」 "、" store "、" actor_info "、" customer_list "、" film_list "、" nicer_but_slower_film_list "、" sales_by_film_category "、" sales_by_store "、" staff_list "] '、' 
verify ':True、' timeout ':120} 
url: 'http://172.16.160.167:28080 / rest / meta2 / table / AUTO_MYSQL_1587008056 / sakila / batchDelTab ' 
メソッド:' DELETE ' 
headers:{'User-Agent': 'Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36 (GeckoのようなKHTML)Chrome / 80.0.3987.163 Safari / 537.36 '、' Accept-Encoding ':' gzip、deflate '、' Accept ':' * / * '、' Co 
nnection ':' keep-alive '、' Content-Type ':' application / json; charset = UTF-8 '、' HRUN-Request-ID ':' 191ce27d-3a9b-4b3b-9d49-ae6cbd01e20c '、' Cookie ':' JSESSIONID = 646512509BDF8AAFB8AC46298676FC91 '、' Content-Type長さ ':
' 404 '} 
ボディ:b' "[\\" actor \\ "、\\" address \\ "、\\" category \\ "、\\" city \\ "、\\"city_target \\ "、\\" country \\ "、\\" customer \\ "、\\" film \\ "、\\" film_actor \\ "、\\" film_category \\ "、\\" film_text \ \ "、\\"在庫\\ "、\\" lang
uage \\ "、\\" payment \\ "、\\" rental \\ "、\\" sms_code_10 \\ "、\\" sms_code_1000 \\ "、\\" sms_code_200 \\ "、\\" staff \ \ "、\\" store \\ "、\\" actor_info \\ "、\\" customer_list \\ "、\\" film_list \\ "、\\" nicer_but_slower_film_list \\ "、\\" sale 
s_by_film_category \\ "、\\" sales_by_store \\ "、\\" staff_list \\ "]" ' 
cookies:{} 
encoding: ' UTF-8 '
 
2020-04-16 11:34:40.997 | デバッグ| httprunner.client:log_print:25-
==================応答の詳細================== 
ok:False 
url: 'http://172.16。 160.167:28080 / rest / meta2 / table / AUTO_MYSQL_1587008056 / sakila / batchDelTab ' 
status_code:400 
reason:' '
headers:{'Access-Control-Allow-Headers': 'X-Requested-With、accept、content-type'、 'Access-Control-Allow-Methods': 'GET、HEAD、POST、PUT、DELETE、TRACE、 OPTIONS、PATCH '、' Access-Control-Allow-Creden 
tials ':' true '、' Content-Type ':' application / json; charset = UTF-8 '、' Transfer-Encoding ':' chunked '、' Date ':'木曜日、2020年4月16日03:42:06 GMT '、'接続 ':'閉じる '} 
content_type:' application / json; charset = UTF-8 ' 
body:{' timestamp ':' 2020-04-16T03 :42:06.615 + 0000 '、' status ':400、' error ':' Bad Request '、' message ':' JSON parse error:Ca n't instance of instance of `java.lang.String []` out of VALUE_STRING tok 
en; ネストされた例外はcom.fasterxml.jackson.databind.exc.MismatchedInputExceptionです:[ソース:(PushbackInputStream);のVALUE_STRINGトークンから `java.lang.String []`のインスタンスをデシリアライズできません\ n line:1、
column:1] '、' path ':' / rest / meta2 / table / AUTO_MYSQL_1587008056 / sakila / batchDelTab '}

  

リクエストの詳細
本文では、最初のインターフェースから抽出されたコンテンツは

正常にエスケープされましたが、返された情報はそれが期待と矛盾し、操作は成功したことを表明しましたが、予期された関数は



ソリューション




インターフェースの手順を実装していませんでした。カスタムメソッドを使用してリクエストを変更してください
setup_request DEF(要求):
    印刷(要求[ "JSON"])
    JSON =(要求[ "JSON"])
    コンテンツをフォーマット#利用評価、引用符で囲まれた文字列の両端を除去する
    リクエスト[ "JSON"] = evalの(JSON)
    印刷(リクエスト["json"])

  

setup_hooks:
-$ {setup_request($ request)}


再実行
2020-04-16 11:43:37.164 | デバッグ| httprunner.response:extract_field:272-抽出:(\ [。+ \])=> ["actor"、 "address"、 "category"、 "city"、 "city_target"、 "country"、 "customer"、 " film "、" film_actor "、" film_category "、" film_text "、" inventory "、" 
language "、" payment "、" rental "、" sms_code_10 "、" sms_code_1000 "、" sms_code_200 "、" staff "、" store " 、 "actor_info"、 "customer_list"、 "film_list"、 "nicer_but_slower_film_list"、 "sales_by_film_category"、 "sales_by_store"、 "staff_list"] 
2020-04-16 11:43:37.167 | デバッグ| httprunner.validator:validate:136-検証を開始します。
2020-04-16 11:43:37.171 | デバッグ| httprunner.response:extract_field:272-抽出:status_code => 200 
2020-04-16 11:43:37.173 | デバッグ| httprunner.validator:validate:
182-検証:status_codeは200(int)==>に等しい
2020-04-16 11:43:37.176 | デバッグ| httprunner.response:extract_field:272-抽出:
content.status => 200 2020-04-16 11:43:37.180 | デバッグ| httprunner.validator:validate:182- 
validate:content.status equals 200(int)==> pass 
2020-04-16 11:43:37.194 | デバッグ| httprunner.response:extract_field:272-extract:content.msg =>操作成功!
2020-04-16 11:43:37.198 | デバッグ| httprunner.validator:validate:182- 
validate:content.msg equals操作成功!(str)==> pass 
2020-04-16 11:43:37.201 | 情報| httprunner.report.html.result:startTest:30-批量删除表
2020-04-16 11:43:37.202 | デバッグ| httprunner.runner:do_hook_actions:150-SETUPフックアクションを呼び出します。
2020-04-16 11:43:37.204 | デバッグ| httprunner.runner:do_hook_actions:165-フック関数の呼び出し:LazyString($ {setup_request($ request)})
["actor"、 "address"、 "category"、 "city"、 "city_target"、 "country"、 "customer "、"フィルム "、"フィルム_アクター "、"フィルム_カテゴリ "、"フィルム_テキスト "、"在庫 "、"言語 "、"支払い "、"レンタル "、" sms_code_10 "、" sms_code_1000 "、" sms_code_200 "、"スタッフ "、 "ストア"、 "actor_in 
fo"、 "customer_list"、 "
['actor'、 'address'、 'category'、 'city'、 'city_target'、 'country'、 'customer'、 'film'、 'film_actor'、 'film_category'、 'film_text'、 'inventory'、 '言語」、「支払い」、「レンタル」、「sms_code_10」、「sms_code_1000」、「sms_code_200」、「スタッフ」
、「ストア」、「actor_info」、「customer_list」、「film_list」、「nicer_but_slower_film_list」、「sales_by_film_category」 、 'sales_by_store'、 'staff_list'] 
2020-04-16 11:43:37.206 | 情報| httprunner.runner:_run_test:242-DELETE http://172.16.160.167:28080/rest/meta2/table/AUTO_MYSQL_1587008606/sakila/batchDelTab 
2020-04-16 11:43:37.207 | デバッグ| httprunner.runner:_run_test:
KHTML、Geckoなど)Chrome / 80.0.3987.163 Safari / 537.36 '、' HRUN-Request-ID ':' c6b014fb-28ae-471d-b316-1412965cbd5d '}、' json ':[' actor '、' address '、' category '、' city '、' city_target '、' country '、' customer '、' film '、' film_actor '、' film_c 
ategory '、' film_text '、' inventory '、' language '、' payment '、' rental '、' sms_code_10 '、' sms_code_1000 '、' sms_code_200 '、' staff '、' store '、' actor_info '、' customer_list '、' film_list '、' nicer_but_slower_film_list '、' sales_by_film_category 
'、' sales_by_store '、' stories 、 'verify':True} 
2020-04-16 11:43:37.208 | デバッグ| httprunner。
nicer_but_slower_film_list '、' sales_by_film_category '、' sales_by_store '、' staff_list ']、' verify ':True、' timeout ':120} 2020-04-16 11:43:41.516 | デバッグ| httprunner.client:log_print:25-
==================リクエストの詳細================== 
url: 'http://172.16.160.167:28080 / rest / meta2 / table / AUTO_MYSQL_1587008606 / sakila / batchDelTab ' 
method:' DELETE ' 
headers:{' User-Agent ':' Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML、like Gecko)Chrome /80.0.3987.163 Safari / 537.36 '、' Accept-Encoding ':' gzip、deflate '、' Accept ':' * / * '、' Connection ':' keep-alive ' 
、' Content-Type ':' application / json; charset = UTF-8 '、' HRUN-Request-ID ':' c6b014fb-28ae-471d-b316-1412965cbd5d '、' Cookie ':' JSESSIONID = FC6197C57680BD347AC83A470A24D14B '、' Content-Length ':' 374 '}
body:b '["actor"、 "address"、 "category"、 "city"、 "city_target"、 "country"、 "customer"、 "film"、 "film_actor"、 "film_category"、 "film_text"、 "在庫」、「言語」、「支払い」、「レンタル」、「sms_code_10」、「sms_code_1000」、「s 
ms_code_200」、「スタッフ」、「ストア」、「actor_info」、「customer_list」、「film_list」、「nicer_but_slower_film_list "、" sales_by_film_category "、" sales_by_store "、" staff_list "] ' 

2020-04-16 11:43:41.520 | デバッグ| httprunner.client:log_print:25- 
==================応答の詳細================== 
ok:
headers:{'Access-Control-Allow-Headers': 'X-Requested-With、accept、content-type'、 'Access-Control-Allow-Methods': 'GET、HEAD、POST、PUT、DELETE、TRACE、 OPTIONS、PATCH '、' Access-Control-Allow-Credentials ':' true '、' Conten 
t-Type ':' application / json; charset = UTF-8 '、' Transfer-Encoding ':' chunked '、' Date ':' Thu、16 Apr 2020 03:51:07 GMT '} 
content_type:' application / json; charset = UTF-8 ' 
body:{' status ':200、' msg ':'操作成功! '、' timestamp ':1587009067169、' execTime ':1587009067060、' successData ':{' AUTO_MYSQL_1587008606 :: sakila :: category ':なし、' AUTO_MYSQL_1587008606 :: sakila :: customer ':なし、' AUTO_M
YSQL_1587008606 :: sakila :: sms_code_1000 ':None、' AUTO_MYSQL_1587008606 :: sakila :: film_actor ':None、' AUTO_MYSQL_1587008606 :: sakila :: store ':None、' AUTO_MYSQL_1587008606 :: sakila ::支払い: :sakila :: city_tar 
get ':None、' AUTO_MYSQL_1587008606 :: sak :: :: '' sakila :: sms_code_10 ':なし、' AUTO_MYSQL_15870086 
06 :: sakila ::アクター ':なし、' AUTO_MYSQL_1587008606 :: sakila ::レンタル ':なし、' AUTO_MYSQL_1587008606 :: sakila ::在庫 ':なし、' AUTO_MYSQL_1587008 :: sales_by_store ':None、' AUTO_MYSQL_1587008606 :: sakila :: film_list ':None、' AUT
O_MYSQL_1587008606 :: sakila :: staff_list ':なし、' AUTO_MYSQL_1587008606 :: sakila :: address ':なし、' AUTO_MYSQL_1587008606 :: sakila :: actor_info ':なし、' AUTO_MYSQL_1587008606 :: sakila :: city ':なし、' AUTO_MYSQL_1587008606: :sakila :: nicer_but 
_slower_film_list ':なし、' AUTO_MYSQL_1587008606 :: sakila :: customer_list ':なし、' AUTO_MYSQL_1587008606 :: sakila :: country ':なし、' AUTO_MYSQL_1587008606 :: sakila :: film_text ':なし、' AUTO_MYSQL:1587008606: sakila :: film ':なし、' AUTO_MYS 
QL_1587008606 :: sakila :: film_category ':なし、' AUTO_MYSQL_1587008606 :: sakila :: sales_by_film_category ':なし}、' errorData ':なし、' errorMsg ':なし}

  

  

 

失敗と成功のレポートの比較

 

おすすめ

転載: www.cnblogs.com/l7planet/p/12711688.html