<h2><a name="t0"></a><a id="jmeter_APP_0"></a>使用jmeter 对APP进行压力测试</h2>

步骤一:jmeter设置

1.在jmeter/bin路径下双击jmeter.bat 等待jmeter启动

Android压力测试 app 压力测试_代理服务器


启动成功后的界面显示如下

Android压力测试 app 压力测试_jmeter_02


2.添加线程组:右键测试计划→添加→Threads(Users)→线程组

Android压力测试 app 压力测试_jmeter_03


3.添加简单控制器:右键线程组→添加→逻辑控制器→简单控制器

Android压力测试 app 压力测试_压力测试_04


4.添加HTTP cookies 管理器:右键简单控制器→添加→配置元件→HTTP cookies 管理器

Android压力测试 app 压力测试_app_05


5.添加CSV数据文件设置:右键简单控制器→添加→配置元件→CSV数据文件设置

Android压力测试 app 压力测试_代理服务器_06


6.添加察看结果树:右键线程组→添加→监听器→察看结果树

Android压力测试 app 压力测试_代理服务器_07


7.添加聚合报告:右键线程组→添加→监听器→聚合报告

Android压力测试 app 压力测试_Android压力测试_08


8.添加图形结果:右键线程组→添加→监听器→图形结果

Android压力测试 app 压力测试_压力测试_09


9.添加HTTP代理服务器:右键测试计划→添加→非测试元件→HTTP 代理服务器

Android压力测试 app 压力测试_代理服务器_10


10.配置HTTP代理服务器

·端口:8888

·目标控制器:测试计划→HTTP代理服务器

·分组:每个组放入一个新的控制器

Android压力测试 app 压力测试_jmeter_11


步骤二:配置手机代理1.在设置→WLAN页面 开启手动代理

2.在PC端CMD→ipconfig查看ip 填写代理服务器主机名

3.填写代理服务器端口 与HTTP代理服务器端口一致

Android压力测试 app 压力测试_代理服务器_12


步骤三:录制脚本1.在HTTP代理服务器页面点击启动,进入录制状态

Android压力测试 app 压力测试_Android压力测试_13


2.在手机端操作要压测的APP

3.录制完成后点击停止

Android压力测试 app 压力测试_Android压力测试_14


4.查看录制脚本(可以删除不需要压测的部分)

步骤四:使用jmeter进行性能测试

1.造数据:先看参数要求中需要输入哪些参数,必传参数必须有数据,非必传可造可不造,(csv每行表示每一组参数值,每列表示同一种变量)造好数据后,另存为csv格式文件

Android压力测试 app 压力测试_压力测试_15


2.填写CSV数据文件设置

·文件名:测试数据的路径

·文件编码:UTF-8

·其他:默认即可

Android压力测试 app 压力测试_代理服务器_16


3.参数设置

填写造了数据的参数,没造数据的就不用填了,使用 ${参数名称} 格式,如果参数是固定值就输入固定值,如果输入数字就需要在数字前加上英文逗号“,”,例如是年月日格式,参数输入固定值时就必须输入“,2014-07-12”。

Android压力测试 app 压力测试_代理服务器_17


4.设置线程属性(根据实际需求填写)

线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。

1)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。需要设置多少个虚拟用户数就在这里填写多少个线程数。

2)准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为5 ,那么需要5秒钟启动20个线程。也就是每秒钟启动4个线程。

3)循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

除了固定循环次数与永远外,也可以灵活的选择设定测试运行时间。勾选“调度器”,进行调度器配置。

Android压力测试 app 压力测试_app_18


5.运行脚本

Android压力测试 app 压力测试_代理服务器_19


备注:运行前录制的脚本与监听器位置如图:

Android压力测试 app 压力测试_app_20

6.测试结束后,查看结果树中的结果是否符合要求,绿色是成功,红色是失败,若失败数过多可重新测试一遍,若失败数较少,则查看聚合报告结果,一般来说samples越大越好,一般也最好测试900s,或者10000条。然后根据性能测试统计表填写数据(平均响应时间、最大响应时间、最小响应时间、错误率)

聚合报告:

Android压力测试 app 压力测试_app_21


7.结果分析: 根据需求判断压测结果是否满足实际需要,如果偏差太大,就需要进行性能优化。温馨提示:在一个空白的测试计划页面打开以前保存的测试项目,当弹出下图提示时,选择“否”,如果选择“是”,后面的空白页将会覆盖以前保存的配置。

Android压力测试 app 压力测试_代理服务器_22

</div><div data-report-view="{"mod":"1585297308_001","dest":";}"><div></div></div>
            <link href="" rel="stylesheet">
                                <div data-report-view="{"mod":"popu_387","dest":";}"></div>
                    
        <div class="person-messagebox">
            <div class="left-message"><a href="">
                <img src="" class="avatar_pic" username="qq_30463497">
            </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit "><a href="" data-report-click="{"mod":"popu_379","ab":"new"}" target="_blank">小欢~</a></span>
                    <!-- 等级,level -->
                                            <img class="identity-icon" src="">                                            </div>
                <div class="text"><span>原创文章 42</span><span>获赞 66</span><span>访问量 6万+</span></div>
            </div>
                            <div class="right-message">
                                        <a class="btn btn-sm  bt-button personal-watch" data-report-click="{"mod":"popu_379","ab":"new"}">关注</a>
                                                            <a href="" target="_blank" class="btn btn-sm bt-button personal-letter">私信
                    </a>
                                </div>
                        </div>
                    
    </div>
</article>