app与后台交互以及web与后台交互的比较(app简单测试环境)
来源:互联网 发布:b站mac客户端下载视频 编辑:程序博客网 时间:2024/05/21 06:31
前言:
以前的工作一直做的是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
0 0
- app与后台交互以及web与后台交互的比较(app简单测试环境)
- Ajax 与后台 HttpServlet 的简单交互
- app移动端与后台交互和效率提升
- WatchOS 2 app 与 Iphone app 数据交互(三1)覆盖式后台传输
- WatchOS 2 app 与 Iphone app 数据交互(三2)队列式式后台传输
- App后台开发运维和架构实践学习总结(6)——App客户端与后台交互方式总结
- App与web进行交互
- 关于web浏览器与app的交互
- 与后台交互选择的交互方式
- js与后台的交互
- mui与后台的交互
- 前端与后台的交互
- Ajax与后台的交互
- AS3与后台交互
- ajax与后台交互
- extjs与后台交互
- jQuery 与后台交互
- 与后台交互注意事项
- Eclipse常用快捷键
- dm9000网卡驱动分析(一)
- JavaScript原型链详细介绍
- 吝啬的国度
- shader镜面反射(Reflection)
- app与后台交互以及web与后台交互的比较(app简单测试环境)
- JAVA执行javascript方法
- 1. PDO简介
- C语言单链表实现栈
- 替换空格
- java 之自动装拆箱及final用法
- 奥斯卡影帝马修·麦康纳给毕业生的话
- java从字符串中提取数字
- JavaScript 中 3+ 换成 换成3 也就是把+替换了。