辅弼是什么意思| 疼痛科属于什么科| 穿什么衣服| 本科生是什么意思| dw是什么| 长命百岁的动物是什么| 背上长痘痘擦什么药膏| 美的不可方物什么意思| 女性吃什么改善更年期| 牙痛吃什么药效果最好| 虹霓是什么意思| 老公工作劳累炖什么汤| 肉丝炒什么好吃| 怡字五行属什么的| 抗体和抗原有什么区别| 狐仙一般找什么人上身| 末那识是什么意思| 当兵苦到什么程度| 去三亚穿什么衣服合适| 气得什么| 无舌苔是什么原因| hav是什么病毒| 手脚发麻挂什么科| 身体怕冷什么原因| 皮肤发黄是什么原因| 彩色相片什么时候出现| 孕酮是什么意思| 夜尿频多吃什么药效果好| 几朵花代表什么意思| 口腔溃疡吃什么药| 为什么腹水会很快死亡| 晕车为什么读第四声| 带状疱疹什么样子| 长期不过性生活有什么危害| 牛蒡茶有什么功效| 流年花开讲的什么| 前庭大腺囊肿是什么原因引起的| 鼻子旁边的痣代表什么| 白骨精是什么动物| 2029年属什么生肖| 癌症有什么症状| 偏头痛什么原因| 宸是什么意思| 尿中有泡沫是什么原因| 脾胃虚弱有什么症状| 老舍的原名叫什么| 鼻子流清水是什么原因| 下午5点半是什么时辰| 蜂蜜吃有什么好处| 3月2日是什么星座| 早期唐筛是检查什么| 部队政委是什么级别| 美女胸部长什么样| ercp是什么意思| 白电油对人体有什么危害| 海绵体是什么| 瘪是什么意思| 金字旁目字读什么| 天天吹空调有什么危害| 缩影是什么意思| 肝功能异常是什么意思| 冰爽丝是什么面料| 月字旁的字与什么有关| 内心独白什么意思| 四象是什么| 备孕不应该吃什么| 咳嗽喝什么饮料| 三尖瓣反流什么意思| 贪小失大什么意思| 病毒五项检查的是什么| 为什么肚子总是胀胀的| 当驾校教练需要什么条件| 计抛是什么意思| 什么叫闭经| 心肌缺血用什么药| 小肚子一直疼是什么原因| 读什么| 肠套叠是什么意思| 布丁是用什么做的| 迪奥口红属于什么档次| 花心是什么意思| 脾阳不足吃什么中成药| 经常流鼻血什么原因| 投喂是什么意思| 左眼老是跳是什么原因| 测试你是什么样的人| 什么痣不能点| 实性结节什么意思| 为什么来姨妈左侧输卵管会痛| 肠胃不好适合喝什么茶| 眉毛长痘是什么原因| ccp抗体是什么意思| 吉祥物是什么生肖| reading是什么意思| 97年是什么年| 什么也不懂| 半夜会醒是什么原因| 吃小龙虾不能和什么一起吃| 三点水加个及念什么| 我是舅舅的什么人| 手脱皮缺什么维生素| 急性腮腺炎吃什么药| 插茱萸是什么意思| 大名是什么意思| 吃什么回奶最快最有效| jessica是什么意思| 什么叫有机| 窦骁的父母是干什么的| 胃发炎吃什么药好得快| 想飞上天和太阳肩并肩是什么歌| 火腿肠是什么做的| 晚霞是什么| 姨妈量少是什么原因| 孤臣是什么意思| 不来姨妈挂什么科| 怀孕初期吃什么食物好| 挂失补办身份证需要什么| 月底是什么时候| 拉稀肚子疼吃什么药| 特点是什么意思| 吃什么补充维生素b| 830是什么意思| 尽收眼底是什么意思| 脚掌脱皮是什么原因| dw什么意思| 梦见妈妈出轨预示什么意思| 头皮发麻是什么原因| 新生儿便秘怎么办什么方法最有效| 干细胞有什么作用| 胆囊炎吃什么好| 牛肉炒什么菜好吃| 什么穿针大眼瞪小眼| 免疫性疾病是什么意思| lmp医学上什么意思| 有料是什么意思| 一阵一阵的胃疼是什么原因| 种牙是什么意思| 固液法白酒是什么意思| 红色属于五行属什么| 28年是什么婚| 大便不成形是什么原因| 腹腔淋巴结是什么意思| 三角巾是什么| 草字头下面一个高字读什么| 念字五行属什么| 20分贝相当于什么声音| 什么是社恐| 梦见杀人了是什么意思| 什么羽毛球拍最好| 炒米泡水喝有什么功效| 6.20是什么星座| 吃什么防止脱发掉发| 吃素对身体有什么好处| 62岁属什么生肖| 英语四级什么时候报名| 红烧肉是什么菜系| 气什么意思| 牙龈肿痛吃什么药好| 洁面慕斯和洗面奶有什么区别| 排骨搭配什么菜好吃| 党员有什么好处| 同房后需要注意什么| 肚子经常胀气是什么原因| 为什么叫a股| 血糖高的人早餐吃什么好| 地奥心血康软胶囊主治什么病| 老婆饼是什么馅| 农历五月属什么生肖| 卧蚕和眼袋有什么区别| 幽门螺杆菌什么症状| 神经性头疼是什么症状| 化疗前吃什么补充营养| 烧仙草是什么东西| 洁颜蜜是什么| 资生堂适合什么年龄段| 戍什么意思| 胃寒吃点什么药| 氨基酸的作用是什么| 扌字旁的字和什么有关| 贫血查什么| 理事是什么职位| 身体乳有什么用| 外阴瘙痒用什么药膏擦| 梗米是什么| 红枣不能和什么一起吃| 雀神是什么意思| 根茎叶属于什么器官| 栓是什么意思| 兰花用什么肥料最好| 为什么要闰月| 为什么养鱼养单不养双| 来大姨妈适合吃什么水果| 天珠有什么作用与功效| 妈妈的舅舅叫什么| 肾囊性灶是什么意思| 尿路感染吃什么药消炎| 南瓜子吃多了有什么副作用| 灯火葳蕤是什么意思| 感觉不到饿是什么原因| 咳嗽咳白痰是什么症状| 伤官是什么意思| phoebe是什么意思| 维生素b什么时候吃效果最好| 牙龈紫黑是什么原因| 肾痛是什么原因| 8.19是什么星座| 期货平仓是什么意思| 猪肉什么馅的饺子好吃| 静脉炎的症状是什么| 前列腺肥大吃什么药效果最好| 蟑螂喜欢什么环境| 211属于什么大学| au999是什么意思| 乏是什么单位| 凌晨十二点是什么时辰| 42是什么生肖| 飞机打多了会有什么严重的后果吗| 哈森鞋子属于什么档次| 考试前吃巧克力有什么好处| 酸奶用什么菌发酵| 胃病吃什么药| 夏天为什么热| 头晕可以吃什么药| 客家是什么意思| 鱼丸是什么做的| 阴挺是什么意思| 一夜白头是什么原因| 尿素氮高什么原因| 须发早白吃什么中成药| 撕脱性骨折是什么意思| 小猫起什么名字好听| 什么水晶招财旺事业| 犹豫不决是什么生肖| 纳差是什么意思| 大白条是什么鱼| 92年五行属什么| 膳食纤维有什么作用| 什么是禽流感| 高压偏低是什么原因造成的| 宝宝半夜咳嗽是什么原因| 小猫什么时候驱虫| 乳清粉是什么东西| 肺部气肿吃什么药能治好| 菠菜吃多了有什么害处| 圣诞节送女生什么礼物好| 黄丫头是什么鱼| 农历10月份是什么星座| 治疗脚气用什么药| 鼓刹和碟刹有什么区别| 每天喝酸奶有什么好处和坏处| 罗盘是干什么用的| 吃什么能马上晕倒住院| 慢性结肠炎是什么症状| 4.15是什么星座| 天衣无缝是什么意思| 什么是凌汛| 溯溪是什么意思| 气虚便秘吃什么中成药| 为什么人会打喷嚏| 梦见前男友死了是什么意思| 一个月一个太念什么| 怀孕初期需要注意什么| 荔枝不能跟什么一起吃| 斑是什么原因造成的| 百度

[湖南]娄底道路运输“互联网+”推出便民利民新...

百度 算法造就的“黑箱社会”再者,如果不能清楚地知道自己的数据如何被使用,被用于何处,那么用户这种选择权同样也将毫无用处。

In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload.[1] It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.

Performance testing, a subset of performance engineering, is a computer science practice which strives to build performance standards into the implementation, design and architecture of a system.

Testing types

edit

Load testing

edit

Load testing is the simplest form of performance testing. A load test is usually conducted to understand the behavior of the system under a specific expected load. This load can be the expected concurrent number of users on the application performing a specific number of transactions within the set duration. This test will give out the response times of all the important business critical transactions. The database, application server, etc. are also monitored during the test, this will assist in identifying bottlenecks in the application software and the hardware that the software is installed on

Stress testing

edit

Stress testing is normally used to understand the upper limits of capacity within the system. This kind of test is done to determine the system's robustness in terms of extreme load and helps application administrators to determine if the system will perform sufficiently if the current load goes well above the expected maximum.

Soak testing

edit

Soak testing, also known as endurance testing, is usually done to determine if the system can sustain the continuous expected load. During soak tests, memory utilization is monitored to detect potential leaks. Also important, but often overlooked is performance degradation, i.e. to ensure that the throughput and/or response times after some long period of sustained activity are as good as or better than at the beginning of the test. It essentially involves applying a significant load to a system for an extended, significant period of time. The goal is to discover how the system behaves under sustained use.

Spike testing

edit

Spike testing is done by suddenly increasing or decreasing the load generated by a very large number of users, and observing the behavior of the system. The goal is to determine whether performance will suffer, the system will fail, or it will be able to handle dramatic changes in load.

Breakpoint testing

edit

Breakpoint testing is similar to stress testing. An incremental load is applied over time while the system is monitored for predetermined failure conditions. Breakpoint testing is sometimes referred to as Capacity Testing because it can be said to determine the maximum capacity below which the system will perform to its required specifications or Service Level Agreements. The results of breakpoint analysis applied to a fixed environment can be used to determine the optimal scaling strategy in terms of required hardware or conditions that should trigger scaling-out events in a cloud environment.

Configuration testing

edit

Rather than testing for performance from a load perspective, tests are created to determine the effects of configuration changes to the system's components on the system's performance and behavior. A common example would be experimenting with different methods of load-balancing.

Isolation testing

edit

Isolation testing is not unique to performance testing but involves repeating a test execution that resulted in a system problem. Such testing can often isolate and confirm the fault domain.

Internet testing

edit

This is a relatively new form of performance testing when global applications such as Facebook, Google and Wikipedia, are performance tested from load generators that are placed on the actual target continent whether physical machines or cloud VMs. These tests usually requires an immense amount of preparation and monitoring to be executed successfully.

Setting performance goals

edit

Performance testing can serve different purposes:

  • It can demonstrate that the system meets performance criteria.
  • It can compare two systems to find which performs better.
  • It can measure which parts of the system or workload cause the system to perform badly.

Many performance tests are undertaken without setting sufficiently realistic, goal-oriented performance goals. The first question from a business perspective should always be, "why are we performance-testing?". These considerations are part of the business case of the testing. Performance goals will differ depending on the system's technology and purpose, but should always include some of the following:

Concurrency and throughput

edit

If a system identifies end-users by some form of log-in procedure then a concurrency goal is highly desirable. By definition this is the largest number of concurrent system users that the system is expected to support at any given moment. The work-flow of a scripted transaction may impact true concurrency especially if the iterative part contains the log-in and log-out activity.

If the system has no concept of end-users, then performance goal is likely to be based on a maximum throughput or transaction rate.

Server response time

edit

This refers to the time taken for one system node to respond to the request of another. A simple example would be a HTTP 'GET' request from browser client to web server. In terms of response time this is what all load testing tools actually measure. It may be relevant to set server response time goals between all nodes of the system.

Render response time

edit

Load-testing tools have difficulty measuring render-response time, since they generally have no concept of what happens within a node apart from recognizing a period of time where there is no activity 'on the wire'. To measure render response time, it is generally necessary to include functional test scripts as part of the performance test scenario. Many load testing tools do not offer this feature.

Performance specifications

edit

It is critical to detail performance specifications (requirements) and document them in any performance test plan. Ideally, this is done during the requirements development phase of any system development project, prior to any design effort. See Performance Engineering for more details.

However, performance testing is frequently not performed against a specification; e.g., no one will have expressed what the maximum acceptable response time for a given population of users should be. Performance testing is frequently used as part of the process of performance profile tuning. The idea is to identify the "weakest link" – there is inevitably a part of the system which, if it is made to respond faster, will result in the overall system running faster. It is sometimes a difficult task to identify which part of the system represents this critical path, and some test tools include (or can have add-ons that provide) instrumentation that runs on the server (agents) and reports transaction times, database access times, network overhead, and other server monitors, which can be analyzed together with the raw performance statistics. Without such instrumentation one might have to have someone crouched over Windows Task Manager at the server to see how much CPU load the performance tests are generating (assuming a Windows system is under test).

Performance testing can be performed across the web, and even done in different parts of the country, since it is known that the response times of the internet itself vary regionally. It can also be done in-house, although routers would then need to be configured to introduce the lag that would typically occur on public networks. Loads should be introduced to the system from realistic points. For example, if 50% of a system's user base will be accessing the system via a 56K modem connection and the other half over a T1, then the load injectors (computers that simulate real users) should either inject load over the same mix of connections (ideal) or simulate the network latency of such connections, following the same user profile.

It is always helpful to have a statement of the likely peak number of users that might be expected to use the system at peak times. If there can also be a statement of what constitutes the maximum allowable 95 percentile response time, then an injector configuration could be used to test whether the proposed system met that specification.

Questions to ask

edit

Performance specifications should ask the following questions, at a minimum:

  • In detail, what is the performance test scope? What subsystems, interfaces, components, etc. are in and out of scope for this test?
  • For the user interfaces (UIs) involved, how many concurrent users are expected for each (specify peak vs. nominal)?
  • What does the target system (hardware) look like (specify all server and network appliance configurations)?
  • What is the Application Workload Mix of each system component? (for example: 20% log-in, 40% search, 30% item select, 10% checkout).

Prerequisites

edit

A stable build of the system which must resemble the production environment as closely as is possible.

To ensure consistent results, the performance testing environment should be isolated from other environments, such as user acceptance testing (UAT) or development. As a best practice it is always advisable to have a separate performance testing environment resembling the production environment as much as possible.

Test conditions

edit

In performance testing, it is often crucial for the test conditions to be similar to the expected actual use. However, in practice this is hard to arrange and not wholly possible, since production systems are subjected to unpredictable workloads. Test workloads may mimic occurrences in the production environment as far as possible, but only in the simplest systems can one exactly replicate this workload variability.

Loosely-coupled architectural implementations (e.g.: SOA) have created additional complexities with performance testing. To truly replicate production-like states, enterprise services or assets that share a common infrastructure or platform require coordinated performance testing, with all consumers creating production-like transaction volumes and load on shared infrastructures or platforms. Because this activity is so complex and costly in money and time, some organizations now use tools to monitor and simulate production-like conditions (also referred as "noise") in their performance testing environments (PTE) to understand capacity and resource requirements and verify / validate quality attributes.

Timing

edit

It is critical to the cost performance of a new system that performance test efforts begin at the inception of the development project and extend through to deployment. The later a performance defect is detected, the higher the cost of remediation. This is true in the case of functional testing, but even more so with performance testing, due to the end-to-end nature of its scope. It is crucial for a performance test team to be involved as early as possible, because it is time-consuming to acquire and prepare the testing environment and other key performance requisites.

Tools

edit

Performance testing is mainly divided into two main categories:

Performance scripting

edit

This part of performance testing mainly deals with creating/scripting the work flows of key identified business processes. This can be done using a wide variety of tools.

Each of the tools mentioned in the above list (which is not exhaustive nor complete) either employs a scripting language (C, Java, JS) or some form of visual representation (drag and drop) to create and simulate end user work flows. Most of the tools allow for something called "Record & Replay", where in the performance tester will launch the testing tool, hook it on a browser or thick client and capture all the network transactions which happen between the client and server. In doing so a script is developed which can be enhanced/modified to emulate various business scenarios.

Performance monitoring

edit

This forms the other face of performance testing. With performance monitoring, the behavior and response characteristics of the application under test are observed. The below parameters are usually monitored during the a performance test execution

Server hardware Parameters

  • CPU Utilization
  • Memory Utilization
  • Disk utilization
  • Network utilization

As a first step, the patterns generated by these 4 parameters provide a good indication on where the bottleneck lies. To determine the exact root cause of the issue, software engineers use tools such as profilers to measure what parts of a device or software contribute most to the poor performance, or to establish throughput levels (and thresholds) for maintained acceptable response time.

Technology

edit

Performance testing technology employs one or more PCs or Unix servers to act as injectors, each emulating the presence of numbers of users and each running an automated sequence of interactions (recorded as a script, or as a series of scripts to emulate different types of user interaction) with the host whose performance is being tested. Usually, a separate PC acts as a test conductor, coordinating and gathering metrics from each of the injectors and collating performance data for reporting purposes. The usual sequence is to ramp up the load: to start with a few virtual users and increase the number over time to a predetermined maximum. The test result shows how the performance varies with the load, given as number of users vs. response time. Various tools are available to perform such tests. Tools in this category usually execute a suite of tests which emulate real users against the system. Sometimes the results can reveal oddities, e.g., that while the average response time might be acceptable, there are outliers of a few key transactions that take considerably longer to complete – something that might be caused by inefficient database queries, pictures, etc.

Performance testing can be combined with stress testing, in order to see what happens when an acceptable load is exceeded. Does the system crash? How long does it take to recover if a large load is reduced? Does its failure cause collateral damage?

Analytical Performance Modeling is a method to model the behavior of a system in a spreadsheet. The model is fed with measurements of transaction resource demands (CPU, disk I/O, LAN, WAN), weighted by the transaction-mix (business transactions per hour). The weighted transaction resource demands are added up to obtain the hourly resource demands and divided by the hourly resource capacity to obtain the resource loads. Using the response time formula (R=S/(1-U), R=response time, S=service time, U=load), response times can be calculated and calibrated with the results of the performance tests. Analytical performance modeling allows evaluation of design options and system sizing based on actual or anticipated business use. It is therefore much faster and cheaper than performance testing, though it requires thorough understanding of the hardware platforms.

Tasks to undertake

edit

Tasks to perform such a test would include:

  • Decide whether to use internal or external resources to perform the tests, depending on inhouse expertise (or lack of it).
  • Gather or elicit performance requirements (specifications) from users and/or business analysts.
  • Develop a high-level plan (or project charter), including requirements, resources, timelines and milestones.
  • Develop a detailed performance test plan (including detailed scenarios and test cases, workloads, environment info, etc.).
  • Choose test tool(s).
  • Specify test data needed and charter effort (often overlooked, but vital to carrying out a valid performance test).
  • Develop proof-of-concept scripts for each application/component under test, using chosen test tools and strategies.
  • Develop detailed performance test project plan, including all dependencies and associated timelines.
  • Install and configure injectors/controller.
  • Configure the test environment (ideally identical hardware to the production platform), router configuration, quiet network (we don't want results upset by other users), deployment of server instrumentation, database test sets developed, etc.
  • Dry run the tests - before actually executing the load test with predefined users, a dry run is carried out in order to check the correctness of the script.
  • Execute tests – probably repeatedly (iteratively) in order to see whether any unaccounted-for factor might affect the results.
  • Analyze the results - either pass/fail, or investigation of critical path and recommendation of corrective action.

Methodology

edit

Performance testing web applications

edit

According to the Microsoft Developer Network the Performance Testing Methodology consists of the following activities:

  1. Identify the Test Environment. Identify the physical test environment and the production environment as well as the tools and resources available to the test team. The physical environment includes hardware, software, and network configurations. Having a thorough understanding of the entire test environment at the outset enables more efficient test design and planning and helps you identify testing challenges early in the project. In some situations, this process must be revisited periodically throughout the project's life cycle.
  2. Identify Performance Acceptance Criteria. Identify the response time, throughput, and resource-use goals and constraints. In general, response time is a user concern, throughput is a business concern, and resource use is a system concern. Additionally, identify project success criteria that may not be captured by those goals and constraints; for example, using performance tests to evaluate which combination of configuration settings will result in the most desirable performance characteristics.
  3. Plan and Design Tests. Identify key scenarios, determine variability among representative users and how to simulate that variability, define test data, and establish metrics to be collected. Consolidate this information into one or more models of system usage to implemented, executed, and analyzed.
  4. Configure the Test Environment. Prepare the test environment, tools, and resources necessary to execute each strategy, as features and components become available for test. Ensure that the test environment is instrumented for resource monitoring as necessary.
  5. Implement the Test Design. Develop the performance tests in accordance with the test design.
  6. Execute the Test. Run and monitor your tests. Validate the tests, test data, and results collection. Execute validated tests for analysis while monitoring the test and the test environment.
  7. Analyze Results, Tune, and Retest. Analyze, consolidate, and share results data. Make a tuning change and retest. Compare the results of both tests. Each improvement made will return smaller improvement than the previous improvement. When do you stop? When you reach a CPU bottleneck, the choices then are either improve the code or add more CPU.

See also

edit

References

edit
  1. ^ Thakur, Nitish (2012). "Rational Performance Tester: Tips & Tricks" (PDF). IBM. Retrieved February 3, 2024.
老是嗜睡是什么原因 为什么脚会有酸臭味 梵是什么意思 嘴唇周围长痘痘是什么原因 肋骨中间是什么器官
白凉粉是什么东西 一听是什么意思 地球属于什么星系 翘楚是什么意思 建设性意见是什么意思
梦见老宅是什么意思 心电图p波代表什么 荔枝吃了有什么好处 杏色配什么颜色最洋气 肚子里的蛔虫是什么意思
什么是 妈宝男是什么意思 结果是什么意思 扑救带电火灾应选用什么灭火器 1963年属什么生肖
男人喝劲酒有什么好处hcv9jop4ns1r.cn 雄起是什么意思hcv9jop7ns9r.cn 儿童肚子疼挂什么科huizhijixie.com fgr医学上是什么意思hcv8jop5ns9r.cn 便秘吃什么有用bjhyzcsm.com
蚊子怕什么植物hcv9jop1ns7r.cn 蝙蝠吃什么食物hcv8jop8ns8r.cn 1m是什么意思hcv8jop1ns2r.cn 儿童嗓子哑吃什么药hcv9jop1ns1r.cn 侧颜杀是什么意思hcv7jop6ns7r.cn
剖腹产可以吃什么水果qingzhougame.com 斜率是什么hcv9jop3ns7r.cn 鹦鹉什么时候下蛋hcv9jop0ns8r.cn 隐身是什么意思hcv8jop3ns9r.cn 掌勺是什么意思wuhaiwuya.com
凌晨12点是什么时辰hcv8jop5ns8r.cn 释怀什么意思hcv8jop8ns6r.cn 核桃壳有什么用处hcv7jop9ns4r.cn 脚趾头发麻什么原因yanzhenzixun.com 吃什么不胖反而瘦mmeoe.com
百度