概述
前言:
以前的工作一直做的是web方面的测试工作,性能测试也主要是模拟web端向服务器发送http请求。对app这一块的体系和框架了解比较少。由于下一份工作主要是测试app服务器的性能。就在网上找了一些资料,简单的搭建一个app的测试环境。同时希望能够使用jmeter模拟app向服务器发送请求。所以只适合初学者和我一起学习看,大神勿喷
前面我已经搭建了一个非常简单的javaweb应用,实现使用javaServlet进行登陆的过程。参照前面的博文
现在基于LoginServlet开发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();
}
}
}
}
我在前面的LoginServlet.java里面加入了打印代码。如果有请求过来就打印信息。用于验证请求发送成功。
至此:app端与服务器端的交互模拟过程已经完成
- 分析
从业务逻辑可以看出来,app端与服务器的交互与web端与服务器的交互几乎一样,可以认为是一套服务器,两种不同的客户端。上面介绍的后台使用的是同一个javaservlet,一个是通过html的静态web页面去访问,另外一种是通过app端访问,对服务器端来说效果是一样的。
所以有过测试web服务器性能的测试人员,不用担心说没有测试过app的服务器性能。他们是同一套后台,测试服务器性能时直接模拟web端就是OK的。如果没有web端,只有app端,测试性能的时候,可以找对应开发人员提供http请求报文。然后放到jmeter里面进行测试就ok了
当然还有一种方式就是使用javasampler直接调用后台的接口进行测试。这个要参照前面的javasampler进行
代码来源:
http://www.cnblogs.com/smyhvae/p/4006009.html
最后
以上就是无私过客为你收集整理的app与后台交互以及web与后台交互的比较(app简单测试环境)的全部内容,希望文章能够帮你解决app与后台交互以及web与后台交互的比较(app简单测试环境)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复