<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Test on JsonKit Blog</title>
    <link>https://jsokit.com/blog/tags/test/</link>
    <description>Recent content in Test on JsonKit Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2025 JsonKit</copyright>
    <lastBuildDate>Mon, 11 May 2026 16:42:42 +0000</lastBuildDate>
    <atom:link href="https://jsokit.com/blog/tags/test/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>From Handshake to Heartbeat: Building a WebSocket Online Testing Tool</title>
      <link>https://jsokit.com/blog/posts/from-handshake-to-heartbeat-building-a-websocket-online-testing-tool/</link>
      <pubDate>Mon, 11 May 2026 16:42:42 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/from-handshake-to-heartbeat-building-a-websocket-online-testing-tool/</guid>
      <description>From Handshake to Heartbeat: Building a WebSocket Online Testing Tool Recently, I was developing a real-time chat feature with WebSocket on the backend. Debugging was painful—browser DevTools&amp;rsquo; Network panel shows WebSocket frames, but it&amp;rsquo;s not intuitive. So I built an online testing tool and documented the implementation process.&#xA;WebSocket Connection Lifecycle WebSocket isn&amp;rsquo;t just a simple TCP socket—it has a complete handshake and state management mechanism:&#xA;const ws = new WebSocket(&amp;#39;wss://example.</description>
    </item>
    <item>
      <title>Responsive Testing Tool: iframe Sandbox and Device Simulation</title>
      <link>https://jsokit.com/blog/posts/responsive-testing-tool-iframe-sandbox-and-device-simulation/</link>
      <pubDate>Wed, 29 Apr 2026 12:44:26 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/responsive-testing-tool-iframe-sandbox-and-device-simulation/</guid>
      <description>Responsive Testing Tool: iframe Sandbox and Device Simulation Testing responsive designs usually means switching devices in Chrome DevTools or opening multiple tabs. I built a responsive testing tool that consolidates common device sizes with one-click switching and real-time preview.&#xA;iframe Sandbox: Loading External Pages Securely The core is using iframe to load target websites, but direct embedding has security restrictions:&#xA;&amp;lt;iframe src=&amp;#34;https://example.com&amp;#34; sandbox=&amp;#34;allow-scripts allow-same-origin allow-forms allow-popups&amp;#34; /&amp;gt; The sandbox attribute is critical:</description>
    </item>
    <item>
      <title>Building a Regex Tester: Real-time Highlighting and Performance Optimization</title>
      <link>https://jsokit.com/blog/posts/building-a-regex-tester-real-time-highlighting-and-performance-optimization/</link>
      <pubDate>Tue, 28 Apr 2026 15:26:37 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/building-a-regex-tester-real-time-highlighting-and-performance-optimization/</guid>
      <description>Building a Regex Tester: Real-time Highlighting and Performance Optimization I was working on form validation recently, dealing with various regular expressions. Testing each regex change required a page refresh - too tedious. So I built my own regex tester. Here&amp;rsquo;s how it works.&#xA;How Regex Engines Work JavaScript uses a backtracking regex engine. Think of it as &amp;ldquo;trial and error&amp;rdquo;:&#xA;const regex = /a+b/ const text = &amp;#39;aaab&amp;#39; // Engine execution: // 1.</description>
    </item>
    <item>
      <title>Random Data Generator: Mock Data Best Practices and Implementation Details</title>
      <link>https://jsokit.com/blog/posts/random-data-generator-mock-data-best-practices-and-implementation-details/</link>
      <pubDate>Sat, 25 Apr 2026 15:03:10 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/random-data-generator-mock-data-best-practices-and-implementation-details/</guid>
      <description>Random Data Generator: Mock Data Best Practices and Implementation Details Creating test data manually is fine for a few records, but generating 100 test entries? That&amp;rsquo;s torture. During a recent project, I hit a wall: the backend API wasn&amp;rsquo;t ready, but the frontend needed data for debugging. QA needed edge cases. Demos required realistic user data. So I built a random data generator and dove into mock data best practices.</description>
    </item>
    <item>
      <title>The Algorithm Behind Lorem Ipsum Generators: From Latin to Chinese Random Text</title>
      <link>https://jsokit.com/blog/posts/the-algorithm-behind-lorem-ipsum-generators-from-latin-to-chinese-random-text/</link>
      <pubDate>Sun, 12 Apr 2026 18:20:53 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/the-algorithm-behind-lorem-ipsum-generators-from-latin-to-chinese-random-text/</guid>
      <description>The Algorithm Behind Lorem Ipsum Generators: From Latin to Chinese Random Text When mocking up designs, we often need placeholder text. Photoshop has Lorem Ipsum built in, and frontend developers need dummy text for layout testing. Today let&amp;rsquo;s explore how Lorem Ipsum generators work under the hood, and dive into the details of random algorithms.&#xA;The Origin of Lorem Ipsum Here&amp;rsquo;s a fun fact: Lorem Ipsum isn&amp;rsquo;t meaningless gibberish. It comes from Cicero&amp;rsquo;s &amp;ldquo;De Finibus Bonorum et Malorum&amp;rdquo; written in 45 BC.</description>
    </item>
    <item>
      <title>Linux seq Command Deep Dive: From Number Sequences to Batch Task Automation</title>
      <link>https://jsokit.com/blog/posts/linux-seq-command-deep-dive-from-number-sequences-to-batch-task-automation/</link>
      <pubDate>Tue, 31 Mar 2026 16:33:01 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/linux-seq-command-deep-dive-from-number-sequences-to-batch-task-automation/</guid>
      <description>Linux seq Command Deep Dive: From Number Sequences to Batch Task Automation Published: May 9, 2026 11:50&#xA;Introduction In daily Linux operations, batch processing is inevitable. Renaming 100 files, creating 50 directories, generating test data—these seemingly simple tasks become tedious if done manually. The seq command is designed exactly for these scenarios: it generates number sequences with arbitrary rules, enabling batch automation when combined with command substitution.&#xA;As a loyal user of JsonKit toolkit, you might be accustomed to the convenience of online tools.</description>
    </item>
    <item>
      <title>JavaScript Keyboard Events: key vs code vs keyCode Explained</title>
      <link>https://jsokit.com/blog/posts/javascript-keyboard-events-key-vs-code-vs-keycode-explained/</link>
      <pubDate>Thu, 12 Mar 2026 12:58:46 +0000</pubDate>
      <guid>https://jsokit.com/blog/posts/javascript-keyboard-events-key-vs-code-vs-keycode-explained/</guid>
      <description>JavaScript Keyboard Events: key vs code vs keyCode Explained I was building a keyboard shortcut feature recently and kept mixing up event.key, event.code, and event.keyCode. So I built an online tool to test them, and here&amp;rsquo;s what I learned.&#xA;A Quick Comparison Press the &amp;ldquo;A&amp;rdquo; key:&#xA;document.addEventListener(&amp;#39;keydown&amp;#39;, (e) =&amp;gt; { console.log(e.key) // &amp;#34;a&amp;#34; (lowercase, no Shift) console.log(e.code) // &amp;#34;KeyA&amp;#34; console.log(e.keyCode) // 65 }) Now press Shift + A:&#xA;e.key // &amp;#34;A&amp;#34; (uppercase) e.</description>
    </item>
  </channel>
</rss>
