<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Testing on Shaowen Chen's Website</title><link>https://www.chenshaowen.com/en/tags/testing/</link><description>Recent content in Testing on Shaowen Chen's Website</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&amp;copy;2016 - {year}, All Rights Reserved.</copyright><lastBuildDate>Sun, 08 Feb 2026 00:00:00 +0000</lastBuildDate><sy:updatePeriod>weekly</sy:updatePeriod><atom:link href="https://www.chenshaowen.com/en/tags/testing/atom.xml" rel="self" type="application/rss+xml"/><item><title>Multi-Node, Multi-Disk MinIO Cluster Performance Testing Under Different Erasure Code Configurations</title><link>https://www.chenshaowen.com/en/blog/multi-node-multi-disk-minio-cluster-performance-test-in-different-erasure-code-configurations.html</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><atom:modified>Sun, 08 Feb 2026 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/multi-node-multi-disk-minio-cluster-performance-test-in-different-erasure-code-configurations.html</guid><description>1. Erasure Code Configuration The default erasure parity configuration is as follows:
Erasure Set Size Default Parity (EC:M) 1 EC:0 2-3 EC:1 4-5 EC:2 6 - 7 EC:3 8 - 16 EC:4 The maximum parity is ERASURE_SET_SIZE/2, meaning the number of parity blocks cannot exceed the number of data blocks.</description><dc:creator>微信公众号</dc:creator><category>MinIO</category><category>Storage</category><category>Operations</category><category>Performance</category><category>Testing</category><category>Benchmarking</category><category>Performance Testing</category></item><item><title>Using VLLM Benchmark for Model Performance Testing</title><link>https://www.chenshaowen.com/en/blog/using-vllm-benchmark-to-test-model-performance.html</link><pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate><atom:modified>Tue, 05 Aug 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/using-vllm-benchmark-to-test-model-performance.html</guid><description>VLLM Benchmark is a tool provided by VLLM for testing model performance, supporting a variety of inference backends. This article mainly records some of the process of using VLLM Benchmark to test model performance.
1. Starting the Model Service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 python -m vllm.</description><dc:creator>微信公众号</dc:creator><category>AI</category><category>VLLM</category><category>Benchmarking</category><category>Model Performance</category><category>Testing</category></item><item><title>Using Volcano to Run hccl-test</title><link>https://www.chenshaowen.com/en/blog/use-volcano-to-run-hccl-test.html</link><pubDate>Sun, 11 Aug 2024 00:00:00 +0000</pubDate><atom:modified>Sun, 11 Aug 2024 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/use-volcano-to-run-hccl-test.html</guid><description>1. Building the hccl-test Image Download the dependency packages Python-3.8.18.tgz
Ascend-cann-toolkit_8.0.RC2_linux-x86_64.run
Ascend-cann-kernels-910b_8.0.RC2_linux.run
mpich-3.2.1.tar.gz
If downloading is inconvenient, you can also copy them straight out of the image I built.
Write the Dockerfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 FROM ubuntu:22.</description><dc:creator>微信公众号</dc:creator><category>Volcano</category><category>HCCL</category><category>Ascend</category><category>AI</category><category>Testing</category></item><item><title>Using Volcano to Run nccl-test</title><link>https://www.chenshaowen.com/en/blog/use-volcano-to-run-nccl-test.html</link><pubDate>Sun, 11 Aug 2024 00:00:00 +0000</pubDate><atom:modified>Sun, 11 Aug 2024 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/use-volcano-to-run-nccl-test.html</guid><description>1. Building the nccl-test Image Check the CUDA version 1 2 3 nvidia-smi | grep &amp;#34;CUDA Version&amp;#34; | awk &amp;#39;{print $9}&amp;#39; 12.2 Write the Dockerfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cat &amp;gt; Dockerfile &amp;lt;&amp;lt; EOF FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive ARG CONDA_VERSION WORKDIR /workspace ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update &amp;amp;&amp;amp; apt install -y openmpi-bin libopenmpi-dev ssh openssh-server net-tools vim git iputils-ping nfs-common RUN git clone https://github.</description><dc:creator>微信公众号</dc:creator><category>Volcano</category><category>NCCL</category><category>Nvidia</category><category>AI</category><category>Testing</category></item><item><title>Stress Test: Dynamically Creating Jenkins Agents on Kubernetes</title><link>https://www.chenshaowen.com/en/blog/the-stress-test-about-kubernetes-dynamically-creates-jenkins-agent.html</link><pubDate>Sun, 02 Aug 2020 00:00:00 +0000</pubDate><atom:modified>Sun, 02 Aug 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/the-stress-test-about-kubernetes-dynamically-creates-jenkins-agent.html</guid><description>In the previous document, we took advantage of the elasticity Kubernetes provides to dynamically create Jenkins Slaves on Kubernetes. This document is mainly a stress test of Jenkins under large-scale builds.
1. Cluster Configuration 1.1 Kubernetes Version The version used here is v1.16.7
1 2 3 4 kubectl version Client Version: version.</description><dc:creator>微信公众号</dc:creator><category>Jenkins</category><category>Kubernetes</category><category>DevOps</category><category>CICD</category><category>Testing</category><category>Operations</category></item><item><title>Building an Automated Test System with Kubernetes and Jenkins</title><link>https://www.chenshaowen.com/en/blog/build-an-automated-test-system-using-kubernetes-and-jenkins.html</link><pubDate>Thu, 12 Dec 2019 00:00:00 +0000</pubDate><atom:modified>Thu, 12 Dec 2019 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/build-an-automated-test-system-using-kubernetes-and-jenkins.html</guid><description>1. Test Layering The purpose of testing is to verify expected behavior and uncover latent defects. Testing strengthens confidence that a qualified product can be delivered, and it is what makes agile iteration possible. You could say that testing determines the development pace of a product.
The network model has the seven-layer OSI and the four-layer TCP, while development patterns include MTV, MVC, MVP, MVVM, and so on.</description><dc:creator>微信公众号</dc:creator><category>Testing</category><category>Automation</category><category>Kubernetes</category><category>Jenkins</category><category>DevOps</category><category>CICD</category><category>Operations</category></item><item><title>Advanced Pytest: Mock</title><link>https://www.chenshaowen.com/en/blog/mock-of-pytest.html</link><pubDate>Sun, 27 Jan 2019 00:00:00 +0000</pubDate><atom:modified>Sun, 27 Jan 2019 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/mock-of-pytest.html</guid><description>1. Why We Need Mock When writing unit tests, the function under test is sometimes not a self-contained executable unit. It depends on external resources, such as the return value of another function or a value in a row of a database. To shield the test from interference from external</description><dc:creator>微信公众号</dc:creator><category>Testing</category><category>Python</category><category>Pytest</category><category>Learning</category></item><item><title>Getting Started with Pytest</title><link>https://www.chenshaowen.com/en/blog/101-of-pytest.html</link><pubDate>Sat, 29 Dec 2018 00:00:00 +0000</pubDate><atom:modified>Sat, 29 Dec 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/101-of-pytest.html</guid><description>The Pytest framework is simple to use, rich in plugins, and powerful, and it is widely used for Python automated testing. This article introduces some basic concepts and usage of Pytest. 1. How It Runs Step one, Pytest reads its configuration from the command line or a file. Step two,</description><dc:creator>微信公众号</dc:creator><category>Testing</category><category>Python</category><category>Pytest</category><category>R&amp;D</category><category>Learning</category><category>Automated Testing</category><category>Unit Testing</category><category>Best Practices</category></item><item><title>Enabling Kubernetes Monitoring and Stress Testing</title><link>https://www.chenshaowen.com/en/blog/open-k8s-monitoring-and-stress-testing..html</link><pubDate>Mon, 24 Sep 2018 00:00:00 +0000</pubDate><atom:modified>Mon, 24 Sep 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/open-k8s-monitoring-and-stress-testing..html</guid><description>1. Kubectl Basic Commands 1.1 Creating Objects 1 2 3 4 5 6 7 8 # Create resources; a remote URL also works kubectl create -f ./my.yaml # Create resources from multiple files kubectl create -f ./my1.yaml -f ./my2.yaml # Create resources using all manifest files in a directory kubectl create -f .</description><dc:creator>微信公众号</dc:creator><category>Kubernetes</category><category>Testing</category><category>Monitoring</category><category>Operations</category><category>Learning</category><category>kubectl</category><category>Stress Testing</category><category>Observability</category></item><item><title>How to Package a Robot Framework Docker Image</title><link>https://www.chenshaowen.com/en/blog/how-to-package-a-docker-image-of-robot-framework.html</link><pubDate>Tue, 18 Sep 2018 00:00:00 +0000</pubDate><atom:modified>Tue, 18 Sep 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-package-a-docker-image-of-robot-framework.html</guid><description>To make it easier for CI to integrate UI automation tests, the Robot Framework runtime needs to be packaged as a Docker image. This post covers the configuration and scripts involved in the packaging process. 1. Packaging Directory Structure 1 2 3 4 5 6 tree . ├──</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>RobotFramework</category><category>Python</category><category>Testing</category><category>CICD</category><category>Operations</category></item><item><title>Robot Framework Advanced (2)</title><link>https://www.chenshaowen.com/en/blog/senior-of-robot-framework-2.html</link><pubDate>Thu, 16 Aug 2018 00:00:00 +0000</pubDate><atom:modified>Thu, 16 Aug 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/senior-of-robot-framework-2.html</guid><description>Settings Table The settings table in Robot Framework mainly serves two purposes. For a detailed explanation, see here. Import test, resource, and variable files. Define metadata. In the Setting table: 1 2 3 4 5 Library 引入库 Resource 引入资源文件 Variables 引入变</description><dc:creator>微信公众号</dc:creator><category>RobotFramework</category><category>Python</category><category>Testing</category><category>Automation</category><category>DevOps</category></item><item><title>Robot Framework Advanced (1)</title><link>https://www.chenshaowen.com/en/blog/senior-of-robot-framework-1.html</link><pubDate>Wed, 15 Aug 2018 00:00:00 +0000</pubDate><atom:modified>Wed, 15 Aug 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/senior-of-robot-framework-1.html</guid><description>pybot Command Run all test cases 1 pybot . Run a certain test suite 1 pybot testsuite.txt Run a test case in a certain test suite 1 pybot --test case_name testsuit.txt Output the test results to a fixed path 1 pybot --ouputdir your_ouput_dir testsuit.txt Run test cases that contain a</description><dc:creator>微信公众号</dc:creator><category>RobotFramework</category><category>Python</category><category>Testing</category><category>Automation</category><category>DevOps</category></item><item><title>Jenkins Integrated Robot Framework Automated Testing</title><link>https://www.chenshaowen.com/en/blog/jenkins-integrated-robot-framework-testing.html</link><pubDate>Sun, 05 Aug 2018 00:00:00 +0000</pubDate><atom:modified>Sun, 05 Aug 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/jenkins-integrated-robot-framework-testing.html</guid><description>1. Installing a Headless Browser 1.1 Installing PhantomJS on CentOS Download and extract Visit Phantomjs, find the download link for Download phantomjs-2.1.1-linux-x86_64.tar.bz2, and copy it. Run the following commands on CentOS: 1 2 3 4 5 wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 # 如果没有安装 bzip2 可能会报</description><dc:creator>微信公众号</dc:creator><category>RobotFramework</category><category>Automation</category><category>Continuous Integration</category><category>Testing</category><category>DevOps</category><category>Jenkins</category><category>R&amp;D</category></item><item><title>Robot Framework Basics</title><link>https://www.chenshaowen.com/en/blog/basic-of-robot-framework.html</link><pubDate>Tue, 24 Jul 2018 00:00:00 +0000</pubDate><atom:modified>Tue, 24 Jul 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/basic-of-robot-framework.html</guid><description>This post mainly introduces some basic concepts of Robot Framework and how to write a test case. 1. Basic Elements 1.1 Keywords Robot Framework keywords are similar to functions. They are divided into system keywords and user-defined keywords. System keywords, imported by loading a Library User keywords, imported by loading</description><dc:creator>微信公众号</dc:creator><category>Python</category><category>Testing</category><category>RobotFramework</category><category>DevOps</category><category>Learning</category><category>Automated Testing</category><category>R&amp;D</category><category>CICD</category></item><item><title>Django Application Performance Testing Based on Docker</title><link>https://www.chenshaowen.com/en/blog/django-application-performance-test-based-on-docker.html</link><pubDate>Thu, 07 Sep 2017 19:08:09 +0000</pubDate><atom:modified>Thu, 07 Sep 2017 19:08:09 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/django-application-performance-test-based-on-docker.html</guid><description>1. Basic Website Performance Metrics Concurrency: the number of sessions the server handles per unit of time Throughput: the number of requests the server handles per unit of time Response time: the total elapsed time from when the user sends a request to when the response is fully received, made up of network transmission time, service processing time, and other parts Average response time: the average of the response times of all requests 2.</description><dc:creator>微信公众号</dc:creator><category>Testing</category><category>Demo</category><category>Docker</category><category>Django</category></item><item><title>Automated Testing Tool - Selenium</title><link>https://www.chenshaowen.com/en/blog/automated-testing-tool-about-selenium.html</link><pubDate>Sat, 22 Jul 2017 15:19:42 +0000</pubDate><atom:modified>Sat, 22 Jul 2017 15:19:42 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/automated-testing-tool-about-selenium.html</guid><description>1. Introduction to Selenium Selenium is an integration testing tool from Thoughtworks. At its core, Selenium Core is based on
JSUnit, written entirely in JavaScript, and can run in any browser that supports JavaScript.
1.1 Main Features and Characteristics Open source and free. Multi-browser support: Firefox, Chrome, IE, Opera — usable for compatibility testing.</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Testing</category><category>Automation</category><category>R&amp;D</category><category>Selenium</category><category>Learning</category></item></channel></rss>