CIFCOM跨境电商 CIFCOM跨境电商

当前位置: 首页 » 出海百科 »

ab测试 产品

产品经理的判断利器:AB测试

AB测试可谓是产品经理用于比较两个或多个不同版本的产品、网站或营销策略的常用方法。本文就AB测试进行简单的介绍,希望对你了解相关内容有所帮助。

AB测试,也称为分组测试或对照测试,是一种用于比较两个或多个不同版本的产品、网站或营销策略的实验方法,以确定哪个版本在用户体验、转化率或其他关键性能指标上表现更好的技术。AB测试的来源可以追溯到统计学和实验设计领域,其基本原理是随机将受众分为不同的组,然后对这些组应用不同的变化,最后分析结果以得出结论。

AB测试的历史可以追溯到20世纪初,但它在互联网和数字营销领域的广泛应用始于2000年代初。公司和组织开始使用AB测试来优化网站设计、产品功能、广告策略等方面,以提高用户参与度、转化率和利润,来源主要包括统计学实验设计的原则以及数字化时代的需求,其中包括对用户行为的更多数据收集和分析能力。AB测试是数字产品和服务优化的关键工具,用于不断改进用户体验和业务绩效。

AB测试主要用于以下情况:

网站优化:用于改善网站的用户体验、页面转化率、点击率等。例如,测试不同的页面布局、按钮颜色或标题文本,以确定哪个版本效果最好。

产品开发:在产品开发过程中,可以使用AB测试来确定哪些功能、界面设计或功能更受用户欢迎,以便进行进一步的改进和决策。

市场营销:AB测试可以用于评估不同的市场营销策略、广告文案、邮件标题等,以确定哪个版本带来更高的转化率或点击率。

应用界面优化:在移动应用或桌面应用中,AB测试可用于改进用户界面设计、按钮布局和功能排列,以提高用户满意度和用户参与度。

广告优化:广告商可以使用AB测试来比较不同广告创意、目标受众和投放时机,以确定哪种广告效果最佳。

定价策略:AB测试还可用于评估不同定价策略对销售和收入的影响,以帮助企业找到最具吸引力的价格点。

内容优化:在博客、新闻网站或社交媒体上,AB测试可以用来测试不同的文章标题、图像选择和内容格式,以提高用户的点击率和阅读量。

总之,AB测试适用于任何需要比较不同版本效果的情况,以便做出数据驱动的决策,提高业务绩效和用户满意度的领域。它帮助组织更好地了解用户行为,优化产品和服务。

那么,AB测试怎么做?

1. 制定假设: 首先,您需要确定要测试的目标,例如增加页面转化率或提高用户点击率。然后,您制定一个假设,例如更改按钮颜色可以提高点击率。

2. 随机分组: 将您的用户或访问者分成两个随机组,一个是控制组(Group A),另一个是实验组(Group B)。控制组不接受任何变化,而实验组会应用您的变化。

3. 实施变化: 在实验组中应用您的变化,比如将按钮颜色从蓝色改为绿色。

4. 收集数据: 在一段时间内,跟踪两个组的用户行为数据,例如点击率、转化率、停留时间等。

5. 分析结果: 使用统计分析方法,比如假设检验,来确定实验组和控制组之间是否存在显著差异。这可以帮助您判断您的变化是否对指标产生了积极影响。

6. 做出决策: 根据分析结果,您可以决定是继续采用新变化(如果它表现更好)还是保持原有版本。

7. 重复测试: AB测试是一个迭代过程,您可以不断测试新的假设和变化,以不断优化您的产品或网站。

AB测试是一种强大的工具,可以帮助您根据客观数据做出更明智的决策,改进用户体验和提高业务绩效。

本文由 @蔡彬 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自pixabay,基于 CC0 协议

性能测试工具-AB

性能测试工具-AB

性能测试是通过自动化的测试工具模拟多种正常峰值以及异常负载条件对系统的各项性能指标所进行的测试。性能测试是一项复杂的工作,其主要手段是模拟真实业务的压力对被测系统进行加压,研究被测系统在不同压力情况下的表现,找出其潜在的瓶颈。负载测试和压力测试都属于性能测试,两者可以结合进行。web及其应用程序的普及对web服务器提出了越来越高的性能要求,然而大多数web服务器都未能达到人们所期望的性能。web服务器性能测试能够确定影响web服务器性能的关键因素,从而可以有针对性地对其进行分析和改进,避免web服务器研究和优化过程中的盲目行为。另外,它也是选取不同web服务器的重要参考。

目前已经存在的性能测试工具林林总总,从单一的开放源码的免费小工具(如Aapache自带的web性能测试工具AB)到大而全的商业性能测试软件(如Mercury的Loa根unner等等)数量不下一百种。任何性能测试工具都有其优缺点,我们需要根据实际情况选用最合适的工具。AB功能不是很多,但非常实用,本文论述了这种简单的性能测试工具AB。

1使用

AB是Apache自带的超文本传输协议(HTTP)性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示所安装的Apache每秒可以处理多少个请求。使用这个轻巧的工具我们可以对服务器进行负载测试,看看在重负荷之下服务器的表现如何。AB可以针对某个特定的uRL仿真出连续的联机请求,同时还可以仿真出同时间点数个相同的联机请求,因此利用AB可帮助我们在网站开发期间仿真实际上线可能的情况,利用仿真出来的数据作为调整服务器设定或程序的依据。

1.1安装

AB是Apache的一个安装组件,所以需要下载Apache安装后才能使用,无需另行安装AB。AB位于%ApacheHome%,bin目录下(%ApacheHome%”为A印che安装路径),也可以把曲.exe文件拷贝出来,独立使用。

1.2参数列表

AB是命令行形式的工具,非常易于使用,它可以模仿单独的uRL请求并且重复地执行,可以使用不同的命令行参数来控制执行迭代的次数,并发用户数等等。其参数如下:

以上参数最常用的是-n和-c,他们的含义如下:

-n requests

表示在测试会话中所执行的请求个数。默认时,仅执行一个请

求,但通常其结果不具有代表意义。

-c concurfency

表示一次同时产生的并发请求个数。默认是一次一个。

在实际应用中,有两个问题需注意:

(1)在输入测试网址末尾必须以,”结束,否则就会报错。就

像上面举的例子,我们想测试google主页,网址部分必须输入为.google.com/”,而不能是.google.com”。

(2)-c参数,即一次同时产生的并发请求个数最多设置成64,大于等于65就会报错。

压力测试工具-ab工具

在学习ab工具之前,我们需了解几个关于压力测试的概念

吞吐率(Requests per second)

概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second = Complete requests / Time taken for tests

并发连接数(The number of concurrent connections)

概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

并发用户数(The number of concurrent users,Concurrency Level)

概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

用户平均请求等待时间(Time per request)

计算公式:处理完成所有请求数所花费的时间/(总请求数 / 并发用户数),即 Time per request = Time taken for tests /( Complete requests / Concurrency Level)

服务器平均请求等待时间(Time per request: across all concurrent requests)

计算公式:处理完成所有请求数所花费的时间 / 总请求数,即 Time taken for / testsComplete requests。可以看到,它是吞吐率的倒数,同时,它也=用户平均请求等待时间/并发用户数,即 Time per request / Concurrency Level。

ab工具简介

ab全称为:apache bench

在官网上的解释如下:

ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。

其他网站解释:

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

下载ab工具

Window官方下载地址:

下载完成后解压,修改解压根目录下的conf/httpd.conf文件的端口配置,默认是80端口,应该是被占用了,无法安装,可以自行修改为其他,我在这里修改为8088端口,然后输入命令安装:httpd -k install

启动ab工具

如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去,我是在bin目录下打开命令行的

开始测试

输入命令ab -n 100 -c 10 其中-n表示请求数,-c表示并发数

其余命令请参见

ab参数说明

有关 ab 命令的使用,我们可以通过帮助命令进行查看。如下:

[root@localhost bin]# ab --helpab: wrong number of argumentsUsage: ab [options] [http[s]://]hostname[:port]/pathOptions are: -n requests Number of requests to perform -c concurrency Number of multiple requests to make at a time -t timelimit Seconds to max. to spend on benchmarking This implies -n 50000 -s timeout Seconds to max. wait for each response Default is 30 seconds -b windowsize Size of TCP send/receive buffer, in bytes -B address Address to bind to when making outgoing connections -p postfile File containing data to POST. Remember also to set -T -u putfile File containing data to PUT. Remember also to set -T -T content-type Content-type header to use for POST/PUT data, eg. 'application/x-www-form-urlencoded' Default is 'text/plain' -v verbosity How much troubleshooting info to print -w Print out results in HTML tables -i Use HEAD instead of GET -x attributes String to insert as table attributes -y attributes String to insert as tr attributes -z attributes String to insert as td or th attributes -C attribute Add cookie, eg. 'Apache=1234'. (repeatable) -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip' Inserted after all normal header lines. (repeatable) -A attribute Add Basic WWW Authentication, the attributes are a colon separated username and password. -P attribute Add Basic Proxy Authentication, the attributes are a colon separated username and password. -X proxy:port Proxyserver and port number to use -V Print version number and exit -k Use HTTP KeepAlive feature -d Do not show percentiles served table. -S Do not show confidence estimators and warnings. -q Do not show progress when doing more than 150 requests -g filename Output collected data to gnuplot format file. -e filename Output CSV file with percentages served -r Don't exit on socket receive errors. -h Display usage information (this message) -Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers) -f protocol Specify SSL/TLS protocol (SSL3, TLS1, TLS1.1, TLS1.2 or ALL)

下面我们对这些参数,进行相关说明。如下:

参数

说明

-n

在测试会话中所执行的请求个数。默认时,仅执行一个请求。

-c

一次产生的请求个数。默认是一次一个。

-t

测试所进行的最大秒数。其内部隐含值是 -n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

-p

包含了需要 POST 的数据的文件。

-P

对一个中转代理提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即, 是否发送了 401 认证需求代码),此字符串都会被发送。

-T

POST数据所使用的 Content-type 头信息。

-v

设置显示信息的详细程度 -4 或更大值会显示头信息,3 或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。

-V

显示版本号并退出。

-w

以 HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。

-i

执行 HEAD 请求,而不是 GET。

-X

对请求使用代理服务器。

-x

设置 属性的字符串。

-y

设置

-z

设置

属性的字符串。

-C

对请求附加一个 Cookie 行。其典型形式是 name=value 的一个参数对,此参数可以重复。

-H

对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,Accept-Encoding:zip/zop;8bit”)。

-A

对服务器提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。

-h

显示使用方法。

-d

不显示 percentage served within XX [ms] table” 的消息(为以前的版本提供支持)。

-e

产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经二进制化”,所以比 gnuplot 格式更有用。

-g

把所有测试结果写入一个 gnuplot 或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor 甚至 Excel 中。其中的第一行为标题。

-k

启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认时,不启用 KeepAlive 功能。

-q

如果处理的请求数大于 150,ab 每处理大约 10% 或者 100 个请求时,会在 stderr 输出一个进度计数。此 -q 标记可以抑制这些信息。

属性的字符串。

测试结果分析

上面的命令运行完毕后就出来测试报告了

这段展示的是web服务器的信息,可以看到服务器采用的是nginx,域名是wan.bigertech.com,端口是80

这段是关于请求的文档的相关信息,所在位置/”,文档的大小为338436 bytes(此为http响应的正文长度)

这段展示了压力测试的几个重要指标

Concurrency Level: 100 ==>并发请求数Time taken for tests: 50.872 seconds ==>整个测试持续的时间Complete requests: 1000 ==>完成的请求数Failed requests: 0 ==>失败的请求数Total transferred: 13701482 bytes ==>整个场景中的网络传输量HTML transferred: 13197000 bytes ==>整个场景中的HTML内容传输量Requests per second: 19.66 [#/sec] (mean) ==>吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值Time per request: 5087.180 [ms] (mean) ==>用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值Time per request: 50.872 [ms] (mean, across all concurrent requests) ==>服务器平均请求处理时间,大家最关心的指标之三Transfer rate: 263.02 [Kbytes/sec] received ==>平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题这段表示网络上消耗的时间的分解 这段是每个请求处理时间的分布情况,50%的处理时间在4930ms内,66%的处理时间在5008ms内…,重要的是看**90%**的处理时间。 关于登录的问题

有时候进行压力测试需要用户登录,怎么办? 请参考以下步骤:

先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来如果只用到一个Cookie,那么只需键入命令: ab -n 100 -C key=value 如果需要多个Cookie,就直接设Header: ab -n 100 -H Cookie: Key1=Value1; Key2=Value2” 总结

总的来说ab工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。因此ab工具可以用作临时紧急任务和简单测试。

同类型的压力测试工具还有:webbench、siege、http_load等

开始测试

如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去

我是在bin目录下打开命令行的 注意,下面的是错误的,因为需要在域名后加上/path

ab -n 100 -c 10

报错信息如下:

ab: invalid URLUsage: ab [options] [http://]hostname[:port]/path

必须要接有path 所以我换一下测试命令:

ab -n 100 -c 10

-n 表示请求数,-c 表示并发数. s为path,表示指定测试地址,不指定可能会报”ab: invalid url” 错误. 另外还有-t 表示多少s内并发和请求

测试出来的数据如下:

D:\apacheab\Apache24\bin>ab -n 100 -c 10 is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, to The Apache Software Foundation, www.baidu.com (be patient).....doneServer Software: BWS/1.1 ##服务器软件和版本Server Hostname: www.baidu.com ##请求的地址/域名Server Port: 80 ##端口Document Path: /s ##请求的路径Document Length: 112435 bytes ##页面数据/返回的数据量Concurrency Level: 10 ##并发数Time taken for tests: 4.764 seconds ##共使用了多少时间 Complete requests: 100 ##请求数 Failed requests: 99 ##失败请求 百度为什么失败这么多,应该是百度做了防范 (Connect: 0, Receive: 0, Length: 99, Exceptions: 0)Total transferred: 11342771 bytes ##总共传输字节数,包含http的头信息等 HTML transferred: 11247622 bytes ##html字节数,实际的页面传递字节数 Requests per second: 20.99 [#/sec] (mean) ##每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量 Time per request: 476.427 [ms] (mean) ##用户平均请求等待时间 Time per request: 47.643 [ms] (mean, across all concurrent requests) ##服务器平均处理时间,也就是服务器吞吐量的倒数 Transfer rate: 2325.00 [Kbytes/sec] received ##每秒获取的数据长度Connection Times (ms) min mean[+/-sd] median maxConnect: 22 41 12.4 39 82##连接的最小时间,平均值,中值,最大值Processing: 113 386 211.1 330 1246##处理时间Waiting: 25 80 43.9 73 266##等待时间Total: 152 427 210.1 373 1283##合计时间Percentage of the requests served within a certain time (ms) 50% 373 ## 50%的请求在373ms内返回 66% 400 ## 60%的请求在400ms内返回 75% 426 80% 465 90% 761 95% 930 98% 1192 99% 1283 100% 1283 (longest request)

因为ab工具消耗小,所以有些人也用来进行ddos攻击,算一种ddos攻击工具

[Linux]ApacheBench(ab)压力测试工具AB的简介

ab是apachebench命令的缩写。

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等

ab的原理

ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机

ab的安装

安装命令:yum -y install httpd-tools 查看版本命令:ab -V 查看参数说明:ab --help

ab的使用 常用方式:ab -c 500 -n 5000

[root@H__D /]# ab -c 500 -n 5000 is ApacheBench, Version 2.3 <$Revision: 1430300 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, to The Apache Software Foundation, localhost (be patient)Completed 500 requestsCompleted 1000 requestsCompleted 1500 requestsCompleted 2000 requestsCompleted 2500 requestsCompleted 3000 requestsCompleted 3500 requestsCompleted 4000 requestsCompleted 4500 requestsCompleted 5000 requestsFinished 5000 requestsServer Software: nginx/1.15.3 #测试服务器的名字Server Hostname: localhost #请求的URL主机名Server Port: 80 #请求端口Document Path: / #请求路径Document Length: 613 bytes #HTTP响应数据的正文长度Concurrency Level: 500 #并发用户数,这是我们设置的参数之一Time taken for tests: 0.407 seconds #所有这些请求被处理完成所花费的总时间 单位秒Complete requests: 5000 #总请求数量,这是我们设置的参数之一Failed requests: 0 #表示失败的请求数量Write errors: 0 Total transferred: 4230000 bytes #所有请求的响应数据长度总和。包括每个HTTP响应数据的头信息和正文数据的长度HTML transferred: 3065000 bytes #所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度Requests per second: 12284.44 [#/sec] (mean) #吞吐量,计算公式:Complete requests/Time taken for tests 总请求数/处理完成这些请求数所花费的时间Time per request: 40.702 [ms] (mean) #用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数) Time per request: 0.081 [ms] (mean, across all concurrent requests) #服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency LevelTransfer rate: 10149.06 [Kbytes/sec] received。 #表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。Connection Times (ms) min mean[+/-sd] median maxConnect: 0 2 0.8 1 6Processing: 3 5 7.9 5 399Waiting: 0 4 7.9 4 399Total: 4 7 8.0 7 404WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable.Percentage of the requests served within a certain time (ms) 50% 7 #50%用户请求在7ms内返回 66% 7 #60%用户请求在7ms内返回 75% 7 80% 7 90% 7 95% 7 98% 12 #98%用户请求在12ms内返回 99% 12 100% 404 (longest request) 使用注意

1、MAC中应该是自带了Apache。

2、在使用ab命令时,并发了过高会出现错误:Too many open files,由于系统打开文件数量限制了。

查看系统打开文件数量,命令:ulimit -a

修改打开文件数量,修改成1024,命令:ulimit -n 1024

查看修改后情况,命令:ulimit -n

参考:

–d/p/9903959.html

未经允许不得转载: CIFCOM跨境电商 » ab测试 产品

相关文章

CIFCOM

contact