インタフェーステストケースコード

4573 ワード

最近、私たちのグループはMプロジェクトのインタフェーステストを開始する準備をしています.以前、ブラウザやサードパーティのツールで直接インタフェースに要求を送信し、返されたデータが正しいかどうかを確認しました.今回のインタフェース用例コードはjava+TestNgで作成され、菜鳥レベルの私はゆっくりと研究と学習を始め、少し知っている人にとっては簡単な操作かもしれませんが、簡単は私がゆっくりと蓄積した過程ですが、記録しておくと後で復習しやすいです.
一、Fiddler 2を使用してインタフェースを取得する:
Fiddler 2は、ローカルコンピュータとインターネットの間のすべてのHTTP通信を監視するためのネットワークデバッグエージェントです.これは強力なツールですが、残念ながら私は今毛皮を使うしかありません.Fiddler 2を開き、ブラウザにMサイトのアドレスを入力すると、ソフトウェアの左側にこのサイトのすべてのHTTPリクエスト(リクエストがなければ、ブラウザがシステムエージェントを使用するように設定されているかどうかを確認するなど)が表示され、Http状態が200のリクエストを検索し、これらのリクエストの中からふるいにかけます(どちらが正しいかを明らかに判断できます).リクエストの詳細は、右側に表示されるポイント内のリクエストです.リクエストが多すぎると目まぐるしくフィルタでフィルタリングできますが、Fiddler 2の機能の使用についてはあまり紹介されておらず、ネット上には多くの資料がありますhttp://www.2cto.com/Article/201304/204560.html.
二、用例設計
主席はすでに私达にいくつかのインタフェースを设计して、最初はもちろん主席がすでに书いた用例に対して理解を行って、すべての方法、各行のコードの実现の机能を理解して、私の理解では、主にGETあるいはPOST方式を使って1つのページあるいは内容を要求して、求めた内容に対して処理を行います.HttpGetとHttpPostの使用は大きく異なり、HttpGetを使用しても、HttpPostを使用しても、次の3つのステップでHTTPリソースにアクセスする必要があります.
1.HttpGetまたはHttpPostオブジェクトを作成し、要求するURLを構築方法でHttpGetまたはHttpPostオブジェクトに転送する.
2、DefaultHttpClientクラスのexecuteメソッドを使用してHTTP GETまたはHTTP POST要求を送信し、HttpResponseオブジェクトを返す.
3.HttpResponseインタフェースのgetEntityメソッドで応答情報を返し、対応する処理を行う.
私がダウンロードしたエンジニアリングコードには、これらの操作がHttpRequestクラスにカプセル化されており、直接使用でき、非常に便利です.大体理解した後、議長の用例コードに基づいてひょうたんを描き、整理したインタフェースのリストの中でいくつかの簡単なインタフェースを選んで練習した.個人情報取得インタフェースを設計する際、urlと要求のパラメータを設定し、要求を直接開始して戻ってきたデータを取得し、データが正しいかどうかを確認すれば簡単です.
個人情報インタフェースの主なコードを取得します.
//サーバを要求するurlの設定
String url = yxpFixture.ystoreWebAppURL+"/profile/index"; List headers = new ArrayList();//heaser headersを設定します.add(new BasicNameValuePair("Accept", "application/json, text/plain, */*")); headers.add(new BasicNameValuePair("Content-Type", "application/json;charset=UTF-8"));
//get要求取得を開始HttpResponse String responseSrc=HttpRequestを返す.get(client, url, headers);
個人情報コードを保存するように設計されたとき、私はこれがpost要求であることを知っていて、議長のカートを削除するpost要求を参照して、urlとpostのパラメータを設定して、要求を開始しました.
カート削除コード:
String url = yxpFixture.ystoreWebAppURL+"/cart/delete.json"; List entity = new ArrayList();//設定add(new BasicNameValuePair("genMyCartParamJson", "{\"cartIdAndPromoIdMap\":null,\"ordPromoId\":null,\"couponCode\":null,\"cartIdSetOfSelected\":[]}")); entity.add(new BasicNameValuePair("ids", itemId));//削除要求String response=HttpRequestを発行します.post((DefaultHttpClient) client, url, entity, headers, HTTP.UTF_8);
個人情報インタフェースのエラーコードを保存します.
String url = yxpFixture.ystoreWebAppURL+"/profile/save.json"; List headers = new ArrayList(); List entity = new ArrayList();//設定add(new BasicNameValuePair(「realName」,「小強」)entity.add(new BasicNameValuePair("mobile", “13575xxxx64”));
entity.add(new BasicNameValuePair("email", “[email protected]”);
…//保存要求String response=HttpRequest.post((DefaultHttpClient)client,url,entity,headers,HTTP.UTF_8);
実行後にエラーが報告され、HTTP 415のエラー(サポートされていないメディアタイプ)が返され、リクエスト設定のパラメータが間違っていると推定されます.火狐のfirebugプラグインでリクエストのデータを分析しますが、おや!本当に違います.カートを削除するpostパラメータはこのようになっています.
個人情報を保存するpostはこうです.
保存資料はJSON文字列で、度娘は私に文字列をJSONオブジェクトにカプセル化することができて、カプセル化が完成して、私は再び試みます:
......
List headers = new ArrayList(); List entity = new ArrayList(); entity.add(new BasicNameValuePair("profile",jo.toString())); entity.add(new BasicNameValuePair("userProperty",jo1.toString())); String retSrc =HttpRequest.post((DefaultHttpClient)client, url, entity, headers, HTTP.UTF_8);
......
それともHTTP 415エラーを報告して、印刷したentityフォーマットはpostソースコードの要求に合わないので、書き直します.現在1種のとても不器用な方式を見つけて一時的に解決します:正しいフォーマットをつなぎ合わせて、直接
HttpPostメソッドを使用してHTTP POST要求を提出し、正しく提出することができる:
......
HHpPost httpPost=new HttpPost(url);StringEntity=new StringEntity(obj 3.toString()、HTTP.UTF_8);entity.setContentType("application/json");httpPost.setEntity(entity);HttpResponse httpResponse=cliet.execute(httpPost);String retSrc=EnttityUtils.toString(httpResponse.getEntity();String(httpResponse.getEntity();String(httpResponse.getEntity()););//EntityUtilsを使用して値を返すエンティティを処理する
......
最終的に完成したのは完璧ではなく、自分で模索し、勉強する過程であり、現在から購入、注文書の提出、グループリストなどのインタフェースを検討し、徐々に模索して完成しているのではないでしょうか.