appとバックグラウンドインタラクションおよびwebとバックグラウンドインタラクションの比較(app単純テスト環境)


前言:以前の仕事はずっとweb方面のテストの仕事をして、性能のテストも主にweb端がサーバーにhttp要求を送信することをシミュレートします.appというブロックのシステムとフレームワークについてはあまり知られていません.次の作業は主にappサーバの性能をテストするためです.ネット上でいくつかの資料を探して、簡単にappのテスト環境を構築しました.同時にjmeterシミュレーションappを用いてサーバにリクエストを送信することを望んでいる.だから初心者と私が一緒に勉強するのに適しています.大神は噴き出さないでください.私はすでにjavawebアプリケーションを構築して、javaServiceletを使って上陸する過程を実現しました.前のブログを参照して現在LoginServiceletに基づいてapp側のプログラムを開発しています
  • 1 adtを使用してandroidプロジェクトを作成します.layout私の理解はユーザーとインタラクティブなインタフェースで、appのフロントエンドに属してlayoutのactivity_main.xml構成いくつかのコード
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical"
      tools:context=".MainActivity" >
    
      <EditText 
        android:id="@+id/nameText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="username" />
    
      <EditText 
        android:id="@+id/pwdText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="password" />
    
      <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="submit" />
    
    LinearLayout>
  • 2はmainactivity.JAvaは次のコードを入力して、このjavaはlayoutから送られてきたデータを処理することに相当します.いくつかのフロントエンドの検証作業は、ここで行うことができ、具体的な処理作業もここで行うことができる.ここではlayoutのユーザ入力を受信し,ログインをクリックするとgetメソッドを用いてサーバにhttpリクエストを送信する.
  • package com.example.test;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
     import org.apache.http.client.methods.HttpPost;
     import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    
    import android.app.Activity;
     import android.os.Bundle;
     import android.util.Log;
    import android.view.View;
     import android.view.View.OnClickListener;
    import android.widget.Button;
     import android.widget.EditText;
    
    public class MainActivity extends Activity {
    
        private EditText nameText;
        private EditText pwdText;
        private Button button;
    
       @Override
         protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);
           nameText = (EditText) findViewById(R.id.nameText);
          pwdText = (EditText) findViewById(R.id.pwdText);
            button = (Button) findViewById(R.id.button1);
    
           button.setOnClickListener(new OnClickListener() {
    
               @Override
              public void onClick(View v) {
                     // TODO Auto-generated method stub
                  //          ,     Get          
                    String name = nameText.getText().toString();
                   String pwd = pwdText.getText().toString();
    
                //     ,  GET            
                   GetThread getThread = new GetThread(name, pwd);
                    getThread.start();
              }
            });
        }
    
        //   :  GET           、     
         class GetThread extends Thread {
    
           String name;
           String pwd;
    
           public GetThread(String name, String pwd) {
               this.name = name;
                this.pwd = pwd;
           }
    
            @Override
           public void run() {
              // HttpClient    ,    
               //   :  HttpClient  
              HttpClient httpClient = new DefaultHttpClient();
               //  ,      ,        "test"    "text",   BUG        ,       
               String url = "http://localhost:8080/LoginServlet/LoginServlet?name=" + name+ "&password=" + pwd;
               //   :         ,           
              HttpGet httpGet = new HttpGet(url);
           try {
                   //   :    ,            
                  HttpResponse response = httpClient.execute(httpGet);
                   //   :           :        200    
                   if (response.getStatusLine().getStatusCode() == 200) {
                       //   :           ,  entity  
                     HttpEntity entity = response.getEntity();
                    BufferedReader reader = new BufferedReader(
                              new InputStreamReader(entity.getContent()));
                       String result = reader.readLine();
                        Log.d("HTTP", "GET:" + result);
                  }
                 } catch (Exception e) {
                    e.printStackTrace();
                }
    
            }
        }
    } 

    私は前にいるJAvaには印刷コードが入っています.リクエストがあれば情報を印刷します.認証要求の送信に成功しました.
    これでapp側とサーバ側のインタラクティブシミュレーションが完了しました
  • の分析はビジネスロジックから見ることができて、app端とサーバーのインタラクションはweb端とサーバーのインタラクションとほぼ同じで、1セットのサーバーで、2つの異なるクライアントと考えることができます.上で紹介したバックグラウンドは同じjavaservletを使用しています.1つはhtmlの静的webページからアクセスし、もう1つはapp側からアクセスし、サーバ側にとって効果は同じです.

  • Webサーバのパフォーマンスをテストしたことがあるテスト担当者は、appのサーバのパフォーマンスをテストしたことがないという心配はありません.彼らは同じバックグラウンドで、サーバーの性能をテストするときに直接web端をシミュレートすればOKです.Web端末がなければapp端末のみで、性能をテストするときは、対応する開発者にhttpリクエストメッセージを提供することができます.そしてjmeterに入れてテストすればOKです.もちろんjavasamplerを使ってバックグラウンドのインタフェースを直接呼び出してテストする方法もあります.これは前のjavasamplerを参照して行います
    コードソース:http://www.cnblogs.com/smyhvae/p/4006009.html