葡京网上娱乐场为拟微博支付(四)—–保存认证信息、菜单栏和微博首页

事实上我们即便少沾

      前言

*Ø  确定测试登录最老并发用户数;
Ø  事务平均响应时间 (两个查询)

     
好把天尚未更新博客,这些上一直缠身在钻学科以及接下来为有些知识点困住了,今天竟继欢迎界面,认证登录后实现了,底部菜单栏和微博首页简单意义,并且保留认证后底accesstoken信息,避免每次都更认证。

获得这个任务 如何进行测试工作为?

私家觉得只要做到这节的情,以下知识点学认真学习一下: 

同样、WindowsResources 设置(其实不监控 设不若都行 我感觉到) 
1.        添加设备
2.        windows server
2008选项platform为win2003即使可以  (这个试了一点只才搞对)
3.        服务器用户称以及密码 
4.        选择监控项目 

  1.菜单栏用哪种办法,tabhost是怎么回事?

第二、设置runtime-settings(每次飞前都使检查)
1.   把timeout改大 都改成200
2 . 设置think time   选择忽略
3. 安装log 选择Extended log 下面3个因气象择(后来研究了转log
感觉如果不设为不在乎)

  2.layout布局,包括组件摆放和以xml实现“切换效果”如单击“按钮”前后的样式变化等

老三、并作测试*

  3.sina
SDK之版,使用非常一直影响那些文件要好新建,各种对象的使用。

集合点要以事情外,并且以事情前。

  4.知晓微博内的一部分目标,如weibo,user,status,accesstoken,等等,

录制步骤:

  5.listview和Adapter问题

1、 打开登录页面(LR自动打开)

  6.理清思路及流程,包括何时认证登录、在乌保存信息,对象是创建或者获得实例引用。

2、 输入用户名密码

事先看效果图:

3、 插入集合点

 葡京网上娱乐场 1

4、 插入开始事务

  实现操作

5、 点击登录按钮

    
在研究和网上广大版本的初浪微博与svn得来之源码后,把自己的微博支付都施行昏了,一度无知晓下一步到底怎么为,实践告诉我,没有先行理清楚框架是何等可怕的事务。

6、 登录页面加载成功

虽说现在简短实现了部分功效,但是结构不是大好,很多地方得以这优化;

7、 关闭页面

     一、初次认证后保存AccessToken

8、 插入结束工作

    
关于保存认证信息挺简短,我之所以之是SharedPreferences把证取得的AccessToken对象里的token和secret保存起来,下面的getAccessTokenFirst()
方法是自家起定义的,用来发出AccessToken(取得requesttoken在面前已经落实,不再这个函数)并且保存起来:

假定您很熟悉各一样段落脚本代码的意,可以以本子中长:lr_rendezvous 集合点函数。

private void getAccessTokenFirst() throws Throwable
    {
        Uri uri = this.getIntent().getData();
        String oauth_verifier = uri.getQueryParameter("oauth_verifier");
        MainService.mWeibo.addOauthverifier(oauth_verifier);
        // 得到AccessToken的同时在generateAccessToken()函数内部已经赋值给weibo了
        MainService.mWeibo.generateAccessToken(this, null);

        SharedPreferences preferences = getSharedPreferences("UserAuthInfor", Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        // 通过Editor 的方法向参数文件写入内容
        editor.putString("access_token_token", MainService.mWeibo.getAccessToken().getToken());
        editor.putString("access_token_secret", MainService.mWeibo.getAccessToken().getSecret());
        // 插入后一定要提交,才能完成保存

        editor.commit();
    }
季、设置并发的场景 

日益加大100
Start Vusers:Start 100 Vusers simultaneously 
Duration:Run until completion 

参考合并图:运行人数 – 每秒点击次数(右键merge graphs)

                     运行人数 – 平均事务相应时间 

 

五、负载录制

录制步骤:

1、 打开登录页面(LR自动打开)

2、 输入用户名密码

3、 插入开始事务

4、 点击登录按钮

5、 登录页面加载成功

6、 插入结束工作

7、 输入数据

8、 插入开始业务

9、 测试功能点

10、 插入结束工作

11、 重复操作7-11

12、 关闭页面

既然第一糟验证了,以后使用客户端就可以不登录(有效期内无登录),可以在事先获得requesttoken时优先判断有无必要,具体思路是,从地方取出SharedPreferences保存的情,如果都认证了,那么肯定好博得到不呢空的token和secret,否者说明第一蹩脚下,就夺印证:

六、设置负载的情景

冲作业修改用户数及岁月,每秒加载用户数不要跨越20独

    if (CheckAccessToken() != null)
        {
            Log.i(TAG, "---------CheckAccessToken() != null");
            MainService.mWeibo.setAccessToken(CheckAccessToken());
            Log.i(TAG, "token:" + MainService.mWeibo.getAccessToken().getToken() + "-------secret:"
                    + MainService.mWeibo.getAccessToken().getSecret());
            Intent it = new Intent(AuthorizeActivity.this, MainActivity.class);
            startActivity(it);
            finish();

        } else
        {
            Log.i(TAG, "---------AuthorizeNow()");
            setContentView(R.layout.main);
            AuthorizeNow();

        }
Start Vusers:Start 10 Vusers, 2 every 00:00:15(HH:MM:SS)  Duration:Run for 00:30:00 (HH:MM:SS)  Stop Vusers:Stop all Vusers:5 every 00:00:30(HH:MM:SS)  参考合并图:每秒点击次数-吞吐量

参考了累累的事例 出了3单方案 结果还差不多
一个是1秒加1独用户,一个凡是1秒加10个用户,具体这里怎么设 还尚未为明白

马上段代码里面CheckAccessToken()
就是检查出管说明信息之,返回值是AccessToken或null:

七、参数化

1、  需要参数化的地方右键 选择replacewith parameter

2、  输入名称

3、  选择Edit withNotepad

4、  设置规则 

select next
row 中产生三只选项:Sequential(顺序读取)、Random(随机读取)、Unique (唯一)

updatethe value 中吗发生三单选项: Each Occurrence(每次碰到 )、 Each
iteration(每次迭代 )、 Once(一直 ) 

连发场景跑了呢passed状态、负载场景吧stopped状态(纠结了自己生久
并作到没纠结,负载纠结的看网上说这样是针对性的) 

自家之晓如下
Ø  使用100、200、500个用户并发全部通过、使用1000单用户并发通过600只左右用户;
Ø  响应时间:简单操作<=5s(登录、用户管理查询、日志管理查询) 

敲定:经测试证明,本系统登录模块的出现人数也600总人口左右,用户查询在用户数量为60时响应时间操作小于3秒,日志查询在日记数量为180时响应时间操作小于3秒。 (我感觉数据量太小) 

转自:http://www.cnblogs.com/jiangkeji

     // 检查SharedPreferences里是否有授权信息
    public AccessToken CheckAccessToken()
    {
        AccessToken accessToken = null;
        SharedPreferences preferences = getSharedPreferences("UserAuthInfor", Context.MODE_PRIVATE);
        String token = preferences.getString("access_token_token", null);
        String secret = preferences.getString("access_token_secret", null);
        if (token == null || secret == null)
        {
            accessToken = null;
        } else
        {
            accessToken = new AccessToken(token, secret);
        }
        return accessToken;
    }

 

AuthorizeNow()当然就是是失去证明了,跳反至sina的求证页面并用户输入密码及用户称:

    public void AuthorizeNow()
    {
        this.oauthNote = (TextView) this.findViewById(R.id.tvToken);
        this.oauthBtn = (Button) this.findViewById(R.id.loginButton);
        this.oauthBtn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                // TODO Auto-generated method stub
                if (v == oauthBtn)
                {
                    MainService.mWeibo = Weibo.getInstance();
                    MainService.mWeibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_SECRET);
                    try
                    {
                        RequestToken requestToken = MainService.mWeibo.getRequestToken(
                                AuthorizeActivity.this, Weibo.APP_KEY, Weibo.APP_SECRET,
                                AuthorizeActivity.URL_ACTIVITY_CALLBACK);
                        oauthNote.setText(requestToken.getToken());
                        Uri uri = Uri.parse(Weibo.URL_AUTHENTICATION
                                + "?display=wap2.0&oauth_token=" + requestToken.getToken()
                                + "&from=" + AuthorizeActivity.FROM);
                        Log.i(TAG, "---------jump to browser for AUTHENTICATION");
                        startActivity(new Intent(Intent.ACTION_VIEW, uri));
                        finish();
                    } catch (WeiboException e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        });
    }

 

     二、实现菜单栏

     
这个要比复杂的,本人为为无掌握,最好先瞧api文档里的TabHost那些内容,它自带的案例比较清楚,我随即的贯彻即是起那么改过来的。先上代码:

        Resources res = getResources();
        TabHost tabHost = getTabHost();
        TabHost.TabSpec spec;
        Intent intent;
        // 主页
        intent = new Intent().setClass(this, HomePageActivity.class);
        spec = tabHost.newTabSpec("homepage")
                .setIndicator("主页", res.getDrawable(R.drawable.icon_1)).setContent(intent);
        tabHost.addTab(spec);
        // 信息
        intent = new Intent().setClass(this, MSGActivity.class);
        spec = tabHost.newTabSpec("msg").setIndicator("信息", res.getDrawable(R.drawable.icon_2))
                .setContent(intent);
        tabHost.addTab(spec);
        // 我的资料
        intent = new Intent().setClass(this, UserInfoActivity.class);
        spec = tabHost.newTabSpec("2").setIndicator("我的资料", res.getDrawable(R.drawable.icon_3))
                .setContent(intent);
        tabHost.addTab(spec);
        // 搜索
        intent = new Intent().setClass(this, SearchActivity.class);
        spec = tabHost.newTabSpec("3").setIndicator("搜索", res.getDrawable(R.drawable.icon_4))
                .setContent(intent);
        tabHost.addTab(spec);

        // 更多
        intent = new Intent().setClass(this, MoreItemsActivity.class);
        spec = tabHost.newTabSpec("3").setIndicator("更多", res.getDrawable(R.drawable.icon_5))
                .setContent(intent);
        tabHost.addTab(spec);
        // 显示主页
        tabHost.setCurrentTab(0);

 

上面简单的就算是吧菜单的每个条目都安装了一个Activity,他们用新建出,比如第一只HomePageActivity就是本人的微博主页Activity,这里Activity的跳转没有使用button。需要布局文件就不提了,官方案例直接用来用修改一下。

     三、首页显示好友说说

     
头像功能还未曾到,现在一味简单显示关注对象的“昵称”+“内容”。这里是在首页HomePageActivity里之代码,用到了listview绑定adapter。

public ListView allStatus;

//MyAdapter 是自定义的adapter继承父类BaseAdapter

MyAdapter ma = new MyAdapter(this, status);
Log.i(TAG, "---------new MyAdapter(this, status);");
allStatus.setAdapter(ma);
Log.i(TAG, "---------allStatus.setAdapter(ma);");

 

第一不再跟这里的绑定,MyAdapter
类的兑现才是第一,本人代码出错调试基本上还是此处的问题,重写一下getView()方法,在内部绑定用作listview每个item的样式文件。

 

       @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            View statusView = null;
            if ((convertView != null) && (convertView.findViewById(R.id.ivItemPortrait) != null))
            {
                Log.d("listview", "do getView " + position + " getOldTextView");
                // 获取原来内存中保存的条目信息
                statusView = convertView;
            } else
            {
                Log.d("listview", "do getView " + position + " newTextView");
                statusView = LayoutInflater.from(context).inflate(R.layout.itemview, null);
                Log.d("listview", "after  do getView " + position + " newTextView");
            }

            // 设定这个条目显示的内容
            ViewHolder holder = null;
            holder = new ViewHolder();
            // holder.ivItemPortrait = (ImageView)
            // statusView.findViewById(R.id.ivItemPortrait);
            holder.tvItemName = (TextView) statusView.findViewById(R.id.tvItemName);
            holder.tvItemContent = (TextView) statusView.findViewById(R.id.tvItemContent);
            // 设定昵称
            holder.tvItemName.setText(alls.get(position).getUser().getName());
            // 设定内容
            com.aven.util.TextAutoLink.addURLSpan(alls.get(position).getText(),
                    holder.tvItemContent);
            // 更新头像

            return statusView;
        }

 

     四、注意点

    
我的代码主要框架为大概就是这么,这间关于设定昵称要注意,从服务器获得json数据后分析出,封装到status对彼此汇里面,这个status有的SDK里面早已定义好了照weibo4j和weibo4jAndroid,但是weibo_sdk_source_code_0713却没有,甚至并过多主干的接近都未曾,所以说选SDk也是大重大之(对于没什么经验的新家而言),本人就是开的时候用了weibo_sdk_source_code_0713,现在整治的死去活来辛苦,因为教程啊,资料啊都非是是本的。

还有即使是有关菜单栏丢失的题材,在切换不同Activity时,有时候下面的菜谱会丢了,这个经过百度,在片独地方出可参照,一个凡sina博客中,有个体总结两栽方法,我是圈了她博文才化解的,还有即使是博客园的“农民伯伯”这号很牛的文章产生园友问过,我看了生产生接触类似,也为他请教了,但是不清楚现在重操旧业了没。

    小结

  
做到即sina微博客户端的型已经下啦,剩下的是两全其他页面,以及图片展示,代码优化了。文章中还要尴尬的地方还求各位园友指出,不吝赐教,欢迎交流。