Course module | Technical points | Technical details |
Course system description | Course system description | Detailed introduction of actual course content and opening ceremony |
Basic knowledge of performance testing | Basic knowledge of performance testing | Mainly introduce the terms related to performance testing Performance test division and performance test application fields |
LoadRunner performance test | Principle of recording and playback | Performance test is based on the principle of protocol recording, recording and playback Parameters for recording |
Checkpoint | Why and how to insert checkpoints Use of the checkpoint function web_reg_find |
affair | Functions of transactions, how to insert transactions, and transaction principles Start transaction and end transaction functions, transaction status and business success/rate Check the relationship with the transaction |
Parameterization (1) | Which situations need parameterization, parameter creation and parameter type attribute data file |
Parameterization (2) | Database parameterization and other parameterization types |
Script Association (1) | Principles, methods and rules of association Correlation function web_reg_save_param |
Script Association (2) | The Classic Use of Association Technology, the Difference between Association and Parameterization |
Script Development (1) | How to use C string in script How to convert a running variable into an integer How to issue a random number in a strict way Split a string into tokens |
Script Development (2) | Read and write data to the txt file Calling functions in scripts |
Full link development practice -- based on e-commerce platform | Develop full link script based on e-commerce platform Login ->Search for products ->Product details page ->Add to shopping cart ->Settlement |
Controller(1) | Assembly point settings IP spoofing technology RTS Settings |
Controller(2) | Scenario strategy Load machine and load machine balance |
Controller(3) | Scene monitoring |
Analysis(1) | Analyzer Introduction Merge Views View Association |
Analysis(2) | Page breakdown Drilling technology |
JMeter performance test | What is full link script development | What is full link test Full link test scenario Analysis of full link test interface |
Request configuration for full link script development | Http Sampler Configuration Description Http GET request example Http POST request example |
Assertion judgment result of full link script development | Configuration and examples of response assertions JSON data format, jsonPath syntax Configuration and examples of JSON assertions |
Data driven full link script development | Configuration element - CSV_Data_Set_Config (CSV data file settings) Built in function assistant: __CSVRead() |
Association of full link script development, and concatenation of scripts | Basic syntax of regular expression Configuration and example of regular expression extractor Configuration and example of JSON extractor |
Full link script development database | Configure JDBC Connection Configuration Configure JDBC Request Parameterization of database return results (ForEach controller) Parameterization of database return results (counter) |
Project Practice of Full Link Script Development | Log in to ecshop (parameterized login account) and assert the login result empty cart Add receiving address (pick-up receiving address id) Search goods (extract the searched goods ID) View product details Add to shopping cart (assert the amount of goods) Select shipping address (associated) Submit order (pick up order number) View order list (assertion) |
Virtual concurrent user for full link performance test | What is a transaction Configuration and example of transaction controller Configuration and example of synchronization timer |
Data collection and viewing of full link performance test | View result tree, aggregation report, graphical results |
Full link performance test project practice | Transaction: Open the login page - enter the account password to log in ——Jump to home page Assembly point: 100 concurrent, 300 concurrent, 500 concurrent |
JMeter secondary development: built-in variables | Log Write a log, Vars reads and writes the current variable Props reads and writes the current property Ctx accesses the context of the current thread Sampler accesses the current sampler Prev accesses the current sampler results |
JMeter secondary development: beanshell script example | Beanshell Basic Syntax Example of Beanshell Operation Built in Variables Beanshell application example |
JMeter secondary development: Introduction to Groovy | Introduction to JSR223's secondary development component Introduction to Groovy Programming Language |
JMeter secondary development: Groovy script example | JSR223 PreProcessor configuration, example, code interpretation JSR223 Assertion configuration, example, code interpretation JSR223 Listener configuration, example, code interpretation JSR223 PostProcessor configuration, example, code interpretation |
Docker Container Special Practice | Docker working principle and container use | Docker working principle, container creation and container startup Processes in containers, automatic restart of containers, deletion of containers, etc |
Docker image | List images, pull images, and find images Dockerfile builds images, deletes images, etc |
Docker container | Container running, container startup, container deletion |
Dockerfile construction image | Dockerfiler build image command: FROM, RUN CMD, ADD, COPY, etc |
Docker container deployment | Install PHP, MySQL and Redis under Docker Tomcat, Apache, etc |
Prometheus+Grafana | Prometheus | Working principle of Prometheus, configuration of Prometheus under Docker |
Grafana | Working principle of Grafana, configuring Grafana under Docker |
Monitoring instance | Prometheus+grafana monitoring instance |
Interface performance test | HTTP protocol | HTTP protocol interface test function: web_submit_data Web_custom_request |
WebService interface test | WSDL Protocol Introduction WebService protocol recording Interface parameterization Use the Web_service_call function |
Front end tuning (Based on Vue front-end framework optimization) | HTTPWatch and YSLOW | Use httpwatch to capture packets and analyze the response request of each page Analyze time composition fragments of each page Analyze the response time of each page, and use of YSLOW tool |
23 Military Regulations (1) | Minimize the number of HTTP requests and use the content publishing network Add Expires header |
23 Military Regulations (2) | Place CSS at the top, JavaScript at the bottom Avoid using CSS expressions and try to put JS and CSS outside |
23 Military Regulations (3) | Reduce the number of DNS interpretations, simplify JS and CSS, and avoid redirection Remove duplicate JS and CSS, and configure Etags |
23 Military Regulations (4) | Use AJAX to cache and GET request AJAX Reduce the number of DOM nodes and avoid 404 errors |
23 Military Regulations (5) | Avoid empty links, reduce the size of cookies, and use idle cookie domains Avoid filters, do not zoom pictures, use ico format and cache |
System resource monitoring and tuning (System resource monitoring based on the new cloud platform environment) | UNIX like system resources (1) | Top, free, iostat, ps, sar, etc Three states of CPU operation |
UNIX like system resources (2) | VMM virtual memory management, paging space |
UNIX like system resources (3) | IO read/write speed, load balancing, nmon tool monitoring |
Apache Monitoring and Tuning (Apache monitoring under Docker container spring cloud microservice) | Apache configuration description | Interpreting the apache configuration file httpd.conf
Introduce common tuning optimization instructions and settings |
Apache Monitoring | Status monitoring steps and meaning analysis of monitored information Apache top monitoring, analysis of Apache top monitoring information Proetheus+grafana+apache_exporter monitoring |
Apache tuning (1) | Working principle of MPM tuning and different MPM modules: prefork Event、worker |
Apache tuning (2) | Runtime configuration tuning: AllowOverride, HostnameLookups and other DNS, FollowSymLinks SymLinksIfOwnerMatch、 Content negotiation Compilation configuration: MPM configuration, module, atomic operation Mod_status, Scoreboard file |
Log file analysis | Log file analysis tool, log file content Log file format setting, log file statistics and analysis commands |
Tomcat monitoring and tuning (Tomcat monitoring under Docker container spring cloud microservice) | Tomcat Architecture | Common components of Tomcat: Context, Connector Host, Engine, Service, Server and Listener |
Monitoring (1) | Status monitoring steps, status monitoring information analysis |
Monitoring (2) | Probe monitoring steps and analysis of probe monitoring part |
Connector and log file | Connector configuration, log file analysis, and log file settings |
JVM monitoring and tuning (JVM monitoring and tuning under Spring Boot and JDK) | JVM monitoring | Prometheus+granfana+ Jmx_prometheus_javaagent monitoring |
JVM tuning (1) | Heap and stack, JVM structure, why generations are needed |
JVM tuning (2) | Difference between PermGen and Metaface, GC recovery mechanism |
JVM tuning (3) | JVM parameter settings, common parameters |
Nginx monitoring and tuning (Nginx monitoring under Docker container spring cloud microservice) | How Nginx Works | Nginx start and stop, Nginx working principle Process running model, http request running process |
Configure Context | Configure context and common command settings |
Nginx monitoring | Status monitoring steps, status monitoring information analysis Ngxtop monitoring, ngxtop commands |
Load balancing (1) | Principle of load balancing, how to implement load balancing, and load balancing algorithm |
Load balancing (2) | Set the server weight, slow start, limit the number of connections, and health check |
Compression and decompression | Nginx compression and decompression parameters: gzip_type, Gzip_min_length, gzip_proxied, Gzip_http_version, etc |
Nginx cache | Enable nginx cache and process related cache Limit or disable the response cache, clear remove cache contents |
MySQL monitoring and tuning (MySQL monitoring under Docker container spring cloud microservice) | LoadRunner pressure test MySQL | Use the LoadRunner tool to directly test the MySQL database And parameterize SQL |
MySQL monitoring | Prometheus+granfana+mysqld exporter monitoring |
Slow query | Enable slow query and analyze slow query log files |
Explain | Explain analyzes the executed SQL statements. The analyzed information mainly includes: Index usage, connection method, full table scan and other related information |
Profile | Profile syntax and result analysis |
Index, data structure | Impact of B-Tree Index, Hash Index and Data Type during Selection Description of common data types |
Query process, server status monitoring | Optimize access data, query process, threads and connections Binary file information, statistical counters, temporary files, and tables Execution of the Select statement |
configuration file | Common option settings and tuning of common configuration items in the configuration file: Skip-name-resolve、back_log Max_connections、max_connect_errors Open_files_limit, etc |
Redis Monitoring and Tuning (Docker container Redis monitoring under spring cloud microservice) | Docker container deployment Redis and start service Redis operation principle | Deploy Redis container under Docker container, start and stop Redis service under Docker, and Redis working principle Relationship between Redis and MySQL |
LR pressure test Redis API interface, Redis persistence | Use LR tool to call Redis API interface for stress test Redis persistence: RDB and AOF |
Redis master slave copy, sentry | Redis master slave replication settings, working principles, and sentry working principles |
Cache design | Cache design granularity, penetration, avalanche |
Persistence | RDB and AOF persistence |
Redis performance monitoring | Redis resource monitoring, cache usage, QPS, hit rate Hot KEY, breakdown, etc |
Prometheus+granfana+redis_exporter monitoring |
Performance test modeling | Performance test process (1) | Performance test design analysis: requirements analysis, business model Scenario model, data design, environment design |
Performance Test Process (2) | Test construction: use case design, script development, scenario design Environment construction and test data preparation Test execution Result analysis: result data source, performance analysis standard Performance test pressure model |
Performance test modeling | Performance test modeling process: determine performance objectives and analyze test objects Definition of key scenarios, path of key scenarios, and determination of unique data Determine scenario load, target load level, and design option settings |
Performance tuning optimization process | Performance test tuning process: understand optimization objectives and evaluate optimization metrics Locate system bottlenecks, minimize system bottlenecks, and achieve optimization goals |
Cloud platform project (Actual combat of JDK, Maven, Docker, Redis, MySQL, rabbitmq, nginx, tomcat, and nacosa projects) | Cloud platform project practice | From requirement analysis to performance test design From performance test script development to performance scenarios From performance monitoring to performance tuning Training and improving practical ability through practical projects |