Visual studio压力测试

需要安装VS企业正式版本,VS企业使用版本在做压测时,线程数有最多设置250人的限制

VS企业正式版本安装包:VS 2015 Installation.msg

创建一个Web Performance And Load Test项目

1. 打开Visual Studio,选择File->New->Project->Test->Web Performance and Load Test Project

          注意:项目路径请选择D盘或其他磁盘,尽量不要选择C盘,以免磁盘空间不足,对测试结果准确性造成影响

 

 

 

 

 

 添加调用方式为Get类型的API (API没有缓存,做压测的时候可以用这一个API来压,即每次请求的参数不需要变化)

 

1. 选中新建好的工程项目,右键Add Web Performance Test

 

 

 

2. 双击打开工程项目里的WebTest1,右键添加API请求

在配置里,调用方式选择GET,添加API url请求后save一下

 

  

 

 

 

 

 

 

3. 有的API需要添加Headers参数

右键url->Add Header,在配置里添加Name和Value值

 

 

 

4. 本地运行一下,确保API调用没有问题后再开始做压测

点击Run Test,查看API调用结果是否返回200-成功

在request里勾上Show raw data可以看到请求的原始参数

 

 

 

添加调用方式为Get类型的API(API有缓存,即每次请求的参数需要变化),

可以通过add datasource或者generate code的方式更改每次请求的参数,这里以WebTest1为例,每次请求里的contactid取不同的值

add datasource

1. 从数据库里以拼接字符串的方式取不同的contactid,把查询结果存放在xml文件里

xml文件参照:第一组200002864079-20002964075.xml

 

 

 

2. 在url里点击add data source,选择数据源的格式为xml格式,导入xml文件,选中uri

 

 

 

 

 

 

 

 

 

 

 

 

3. 在url里点击data source,点击uri_Text,此时请求的url显示成{{DataSource1.uri.uri._Text}},本地运行一下,确保API调用没有问题后再开始做压测

 

 

 

 

 

 

generate code

1. 点击generate code按钮,生成WebTest1Coded.cs文件

注意此时webtest文件和生成的coded cs文件是两个独立的文件,在后面介绍的压测中添加API时需要选择coded cs文件

 

 

 

2. 在cs文件里添加C#代码,右键点击Run Coded Web Performance Test,确保cs文件运行没有问题后再开始做压测

 

 

 

 

 

 

添加调用方式为post类型的API(API没有缓存,做压测的时候可以用这一个API来压,即每次请求的参数不需要变化)

1. 选中新建好的工程项目,右键Add Web Performance Test

2. 双击打开工程项目里的WebTest2,右键添加API请求

在配置里,调用方式选择POST,添加API url请求后save一下

3. 右键WebTest2,选择open with xml格式,把<FormPostHttpBody />去掉

添加下面代码:

<Headers>

    <Header Name="Content-Type" Value="application/json" />

     </Headers>

     <StringHttpBody />

Save一下

4. 双击打开WebTest2

填写content-type和stringbody

Save一下

 

 

 

 

 

 

 

 

 

 

 

 

添加Load Test开始做压测

1. 右键工程项目,Add Load Test

 

 

 

2. 按向导配置模式、线程数、运行时间、网络  选择On-Premise Load Test在本机做压测

 

 

 

 

 

 

一般不填写think time,选择默认的场景。思考时间:被用来模拟人的行为,   使人们在与网站的互动中等待。

思考时间发生在Web测试中的请求和负载测试场景中的测试迭代之间。在负载测试中使用思考时间对于创建更精确的负载模拟是有用的。

 

 

一般选择持续的线程模式,step load是增量的线程模式

 

 

默认选择第一种模式,基于请求的总数出压测报告

 

 

添加进行压测的webtest或者coded cs文件

 

 

选择网络,默认选择LAN局域网

 

 

选择浏览器,默认选择Internet explorer 9.0,点击Finish按钮

3. 点击Run Load Test

 

 

4. Summary Report中几项重要的压测指标

Max User Load:线程数

Duration:压测运行时间

Total Tests:线程数在运行时间内发起的总请求数

Failed Tests(% of total):请求失败的次数/请求总数

Avg.Test Time(sec):服务器平均一秒内处理的请求数

Errors:截图中的get geo locations error可以忽略,通常在线程数逐渐增多的情况下,会出现500-服务器内部错误、504-服务器响应超时错误等等

 

 

 

 

5. 压测报告模板

观察在运行时间恒定的情况下,随着线程数不断增加,服务器每秒处理的请求数不再增加反而减少了,说明这个API的性能已经达到峰值。

如果在压测过程中看到有大量的500、504或者其他错误,让dev查下原因,看能否优化下SP脚本和代码

 

posted @ 2021-01-04 14:03  Mr.Chiang  阅读(1035)  评论(0编辑  收藏  举报