LoginSignup
1

More than 1 year has passed since last update.

はじめに

テストは見るべきパターンこそ多いですが、期待値は複数のケースで同じものが現れることも多いです。
そして僕の眼球や脳はポンコツなので、似たようなパターンを手作業で確認していると絶対にミスをやらかすという自負があります。

したがって、似たようなパターンのテストはプログラムに任せた方が楽で安全で確実です。

なお、今回はトラブルシュートの記事です。
collection作成やエクスポート、Newmanのコマンドについては、既に分かりやすい記事がいくつもあるのでそちらを参照ください。

一応説明しておきますと、PostmanはAPIを気軽に叩けるツール、NewmanはCLI版Postmanです。

1. 環境変数が読み込まれない

解決策:INITIAL VALUEに値を入れてエクスポートしましょう。

Postmanでは問題なく動いていた APIが、newman runではエラーで全滅する事象にぶつかりました。
出力をよーく見てみると、環境変数で切り替えるようにしていたドメイン部分が消えている‥‥?
そもそものURLが壊れているなら疎通も何もあったもんじゃないです。

とりあえず環境変数持ってるjsonファイルをbatしてみると、valueのところが見事に全部空でした。何もないヌルか‥‥
2021-12-06_144241.png
ちょっと天啓に導かれたので、Postmanの環境変数を確認してみます。
2021-12-03 171444.png
(0M0)やはりそういうことか
Postmanの環境変数にはINITIAL VALUECURRENT VALUEがありますが、前者はPostmanのサーバに送信・同期されるそうです。
僕は秘密主義なので、後者のみを使っていました。
しかしPostman_environment.jsonをエクスポートする際、前者のみを環境変数のvalueとして採用するようです。かわいいね
結果として、僕は何の値も入っていないjsonを環境変数として入力していました。

エクスポート時にCURRENT VALUEを見るようにする設定とかないかなー、と思って探してみましたが見当たりませんでした。
INITIAL VALUEを非表示にしてエクスポート、とかもやってみたけど、そこに意味などありませんでしたね。

2. Hostname/IP does not match certificate's altnames

解決策:newman run-kオプションをつける⚠

ただし、このオプションの意味はDisable SSL certificate verificationです。ディスエイブルエスエスエゥサーティフィケイヨベリフィケイシャン🤗

Postmanにも同じようなオプションがありますね(画像左上のSSL certificate verification)。
このオプションがONのとき、Postmanは通信相手のSSL証明書を検証し、自己署名証明書を使っているサーバのAPIを叩こうとした場合はエラーを出します。
image-20211203165603552.png
「PostmanにこのオプションがあるならNewmanにもあるでしょ🤔」ってnewman -h叩いたら-kを見つけました。

このオプションをOFFにすることで、Postman/Newman側で証明書の検証をしなくなります。
オレオレ証明書を使っているサーバでも疎通できるようになりますが、そもそもオレオレ証明書を使っていること自体がリスクの温床です。

今回の例ではクライアントもサーバも何者か分かっているので問題ない‥‥と思いますが、それでもなりすましや改竄を検知できないのは怖いです。
家を出たとき鍵を閉めたか憶えてないときくらい不安です。その精神状態でコレを書いてます。

つまり、最善の解決方法はちゃんとした証明書を買うことです。お金を払えば無料で証明書が手に入るんだから安いですよね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1