作者:Richard Pal       来自:perftesting           翻译:Elaine00

通过这篇文章,我将介绍如何通过HP Loadrunner VuGen来测试一个安卓应用的网络流量。测试过程中,安卓的SDK将用来执行安卓应用,同时HP Loadrunner VuGen将用来抓包并且转换为HP Loadrunner VuGen的脚本。

要求:

  • Loadrunner/Performance Center Virtual User Generator 9.5x
  • Android SDK with the Android emulator
  • A test application

首先准备安卓模拟器:

第一,需要先下载安卓SDK,解压SDK.zip之后,点击SDK Manager.exe进行配置更新,下载各种必要的API。

这个将耗费一定的时间。配置完毕之后,创建一个安卓的模拟器,比如创建一个名字为A22,Android 2.2版本的模拟器.

配置一个新的安卓虚拟镜像来安装我们的安卓应用。

在测试前需要准备好要测试的应用Get the application under test ready

先准备好要安装的apk安装包。

这里我们使用安卓SDK维基百科的例子来展示。

把Android的应用部署到模拟器Deploy the Android application into the emulator

启动模拟器,可以通过SDK管理器的用户界面或者通过命令行启动(设置模拟式的名字为A22)。

D:\apps\android-sdk-windows\tools\emulator.exe -avd A22 -netspeed full -netdelay none ~/.android/A22.avd

[更新] 因为我写的这篇文章中模拟器的参数列表已更改。现在你需要给“DeviceName emulator.exe模拟器配置,例如基于例如emulator.exe @ A22。

一旦设备完成启动,使用ADB工具,把Android应用安装到Android SDK中(需要切换到存放APK的目录):

D:\apps\android-sdk-windows\platform-tools\adb install Wiktionary.apk
 

在模拟器中启动应用,而且需要确保该应用可以正常执行。

使用VuGen来抓取安卓应用产生的网络包

关闭模拟器。

创建一个新的脚本,因为Wiktionary使用的是HTTP和JSON,所以HTTP协议将会使用到。

在开始录制的对话框中需要先指定执行的模拟器和虚拟模拟器的一些执行参数:

  • Program to record: D:\apps\android-sdk-windows\tools\emulator.exe
  • Program arguments: -avd A22 -netspeed full -netdelay none (see the [Update] on argument list above)

(确保把模拟器名字改为A22。)

在开始录制之前,网络的Capture level需要修改为:“Socket level and WinInet level data”。(其他两个选项是do not record any traffic or crash the emulator during recording)

在Non-Resources content-type添加 “application/json”  。 这个将产生多个 web_url 来请求JSON源。此外,JSON的请求也将被添加到 EXTRA_RES节点中.

在VuGen录制器中添加content types 到'non-resources' 列表。

开始录制并且执行测试,记住,必须确保Recording toolbar有展示记录的事件。

在VuGen测试停止之后,生成了测试脚本。下面是一个测试例子:

Action()
{
web_url("api.php",
"URL=http://en.wiktionary.org/w/api.php?action=query&list=random&format=json",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=",
"Snapshot=t1.inf",
LAST); web_url("api.php_2",
"URL=http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=phosphourous&rvprop=content&format=json&rvexpandtemplates=true",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=",
"Snapshot=t2.inf",
LAST); lr_think_time(5); web_url("api.php_3",
"URL=http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=phosphorous&rvprop=content&format=json&rvexpandtemplates=true",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=",
"Snapshot=t3.inf",
LAST); return 0;
}

确保回放的脚本是正确的,脚本通常需要定制正确模拟用户交互(parameters, correlation, think times, pacing,等)

记录和重放网络流量可以在树视图跟踪。

如果脚本准备好,它可以用来像用户访问中心网站一样做负载测试。

我希望这个简短的介绍将帮助您设置的Android应用程序的负载测试。

通过HP Loadrunner VuGen来录制安卓的应用的更多相关文章

  1. Loadrunner VuGen实战---基本组成、录制流程、协议、脚本优化、参数化(三)

    一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的 ...

  2. HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版

    HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版 Tylan独家呕血翻译 转载请注明出自“天外归云”的博客园 Welcome to the LoadRun ...

  3. 深刻剖析VuGen脚本录制原理

    扩展:深刻剖析VuGen脚本录制原理 LR中的VuGen组件,主要扮演一个proxy server的角色,在录制脚本时,记录下用户和服务器交互,然后自动生成脚本语言.在接下来的重放,或者大批量地加压时 ...

  4. HP LoadRunner:怎样连接到HP ALM的CAC模式?

    你听说过使用HP LoadRunner连接到HP ALM的CAC模式么?本文给大家讲讲什么是CAC,怎样连接到HP ALM的CAC模式中. CAC是什么? CAC全称是Common Access Ca ...

  5. 巧用loadrunner代理,录制手机APP脚本

    利用loadrunner代理方式录制手机(iPhone.android)应用程序HTTP脚本 1.利用笔记本网卡或者类似360随身wifi,在安装loadrunner的电脑上共享网络,在手机上连接共享 ...

  6. HP LoadRunner 11 破解及license

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. HP Loadrunner 12.53的下载与安装

    HP Loadrunner 12.53的下载与安装   HP Loadrunner 12.53的下载:http://pan.baidu.com/s/1c23axHm HP Loadrunner 12. ...

  8. [原创]LoadRunner 12.02 录制脚本时提示无Internet访问,如何解决?

    在使用LoadRunner 12.02 进行录制脚本时提示无Internet访问,如下图: 翻译中文如下: 可以尝试以下方式解决:点击弹出框中的“Yes”即可. 若还是有问题,尝试以下方式: (1)L ...

  9. Loadrunner Vugen参数列表中数据分配方法及更新值的时间9种组合说明及验证

    作为刚开始学习Loadrunner的新人,Data Assignment Method以及Update Method在相互组合之后,LR如何进行取值让我很是头疼. 于是花了一个晚上的时间认真学习官方文 ...

随机推荐

  1. 《JAVA NIO》第二章缓冲区

    1.缓冲区的构成 2.缓冲区的类图 3.ByteBuffer ByteBuffer是直接和Channel打交道的,准确的是直接字节缓冲. 问题:直接字节缓冲区和内存映射的关系 4.ByteOrder ...

  2. Mysqldump 参数详解(全)

    Mysqldump 参数详解(全) http://www.open-open.com/lib/view/open1358172843762.html mysqldump -S /tmp/mysql33 ...

  3. RHEL6解决无法使用YUM源问题

    RHEL的YUM源需要注册用户才能更新使用,由于CentOS和RHEL基本没有区别,并且CentOS已经被REHL收购.所以将RHEL的YUM源替换为CentOS即可.问题如下:[root@bogon ...

  4. 微信支付开发(4) 动态链接Native支付

    关键字:微信支付 微信支付v3 动态native支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpa ...

  5. Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机

    参考原文(在windows环境下):http://hi.baidu.com/george_gly/item/5183b76e5a79e49ac5d2498b nat网络模式下,虚拟机可以访问外网.访问 ...

  6. window.location.href和window.open的几种用法和区别

    使用js的同学一定知道js的location.href的作用是什么,但是在js中关于location.href的用法究竟有哪几种,究竟有哪些区别,估计很多人都不知道了. 一.location.href ...

  7. HashMap put,get操作

    HashMap中的put方法 public V put(K key, V value) { //当key为null,调用putForNullKey方法,保存null与table第一个位置中,这是Has ...

  8. 第十篇 Replication:故障排除

    本篇文章是SQL Server Replication系列的第十篇,详细内容请参考原文. 复制故障排除是一项艰巨的任务.在任何复制设置中,都涉及到很多移动部件,而可用的工具并不总是很容易识别问题.Th ...

  9. RFS_javascript的使用

    1. RFS对javascript的调用 (1)调用javascript语句 (2)调用javascript函数 2. IE8不支持javascript的 getElementsByClassName ...

  10. msvc库没有安装包,编译选项选择 代码生成 MT【多线程】,C#调用

    参考提过的一个问题,封装VC++动态链接库,C#调用,并将C#程序打包为exe安装包. 感谢大神.