<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/election-2029-load-testing-hs7wnkwij" -->

---
title: Election 2029: Load Testing | daily.dev
description: A developer recounts three successive approaches to load testing a personal election-results site: a home-grown parallel HTTP request tool, an in-site...
canonical: https://daily.dev/posts/election-2029-load-testing-hs7wnkwij
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Election 2029: Load Testing | daily.dev
og:description: A developer recounts three successive approaches to load testing a personal election-results site: a home-grown parallel HTTP request tool, an in-site...
og:url: https://daily.dev/posts/election-2029-load-testing-hs7wnkwij
og:image: https://api.daily.dev/og/posts/hS7WnkWIJ.png
og:image:alt: Election 2029: Load Testing
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Election 2029: Load Testing

**[Jon Skeet's coding blog](https://daily.dev/sources/jonskeet)** · 9 min read · 0 upvotes · 0 comments

## Summary

A developer recounts three successive approaches to load testing a personal election-results site: a home-grown parallel HTTP request tool, an in-site self-testing page running on Cloud Run, and finally Grafana Cloud k6. The author settles on k6 using scripted tests (run locally or via k6 cloud) against staging, driven by needs for low cost, cloud-based execution, and scriptability. Configuration tuning along the way included raising Cloud Run's concurrent-request limit from the default 80 to 1000, enabling Accept-Encoding compression after discovering responses were far larger than needed, and shrinking JSON payload size by about 75% through trimming redundant data and rounding numeric values. The post also notes unexplained latency differences when removing a sleep between requests in the test script, which the author plans to investigate further.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://codeblog.jonskeet.uk/2026/01/18/election-2029-load-testing>

## Questions this post answers

### How do I fix high end-to-end latency caused by requests stuck pending on Google Cloud Run?

Check the maximum concurrent requests setting per Cloud Run instance, which defaults to 80. Raising it to the maximum of 1000 resolved high pending-request latency in one case, preventing Cloud Run from spinning up far more instances than actually needed under load.

_Developers tuning Cloud Run concurrency under load testing can track fixes like this through daily.dev._

### Why is my k6 load test returning much larger response payloads than expected?

The default HTTP headers sent by Grafana Cloud k6 do not include Accept-Encoding, so responses are not compressed and come back far larger than they would in real browser traffic. Adding the Accept-Encoding header to test requests and enabling compression on the server resolves the discrepancy and cuts actual egress costs.

_Anyone debugging inflated load test traffic can keep up with gotchas like this via daily.dev._

### What free cloud-based load testing tools support custom scripts and running tests both locally and in the cloud?

Grafana Cloud k6 supports writing real test scripts instead of a GUI-only builder, letting them live in source control, and running tests either locally against a machine or via the k6 cloud command against a staging environment. It also allows HTTP header customization without duplication and offers a free tier for infrequent use.

_Developers comparing low-cost load testing tools can follow practical experiences like this on daily.dev._

## Similar posts on daily.dev

- [How to generate real-world load tests using Grafana Cloud k6 and production telemetry](https://daily.dev/posts/how-to-generate-real-world-load-tests-using-grafana-cloud-k6-and-production-telemetry-tu3zo1jh6) · Grafana Labs · 0 upvotes · 0 comments
- [Performance testing best practices: How to prepare for peak demand with Grafana Cloud k6](https://daily.dev/posts/performance-testing-best-practices-how-to-prepare-for-peak-demand-with-grafana-cloud-k6-imjoejj0c) · Grafana Labs · 2 upvotes · 0 comments
- [Load testing a web API with k6](https://daily.dev/posts/load-testing-a-web-api-with-k6-gvpnzzpj0) · Flavio Copes · 1 upvotes · 0 comments
- [Building an end-to-end reliability testing strategy with Grafana Cloud](https://daily.dev/posts/building-an-end-to-end-reliability-testing-strategy-with-grafana-cloud-j79wla2er) · Grafana Labs · 0 upvotes · 0 comments
- [To test, or not to Test? Part 4 – Make it easy to test locally](https://daily.dev/posts/to-test-or-not-to-test-part-4-make-it-easy-to-test-locally-ij4em3xn7) · We Are .NET · 0 upvotes · 0 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#gcp](https://daily.dev/tags/gcp), [#aspnet](https://daily.dev/tags/aspnet), [#load-testing](https://daily.dev/tags/load-testing)

[View this post on daily.dev](https://daily.dev/posts/election-2029-load-testing-hs7wnkwij)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Election 2029: Load Testing","url":"https://daily.dev/posts/election-2029-load-testing-hs7wnkwij","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/election-2029-load-testing-hs7wnkwij"},"datePublished":"2026-10-04T13:06:49.618Z","dateModified":"2026-10-04T13:14:43.248Z","description":"A developer recounts three successive approaches to load testing a personal election-results site: a home-grown parallel HTTP request tool, an in-site...","image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","thumbnailUrl":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","isAccessibleForFree":true,"articleSection":"Jon Skeet's coding blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Jon Skeet's coding blog","logo":"https://media.daily.dev/image/upload/s--B4KVP-_K--/f_auto,q_auto/v1791119047/logos/jonskeet?_a=BAMAMicg0","url":"https://daily.dev/sources/jonskeet"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/election-2029-load-testing-hs7wnkwij","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,gcp,aspnet,load-testing","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Jon Skeet's coding blog","item":"https://daily.dev/sources/jonskeet"},{"@type":"ListItem","position":3,"name":"Election 2029: Load Testing"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/election-2029-load-testing-hs7wnkwij#faq","mainEntity":[{"@type":"Question","name":"How do I fix high end-to-end latency caused by requests stuck pending on Google Cloud Run?","acceptedAnswer":{"@type":"Answer","text":"Check the maximum concurrent requests setting per Cloud Run instance, which defaults to 80. Raising it to the maximum of 1000 resolved high pending-request latency in one case, preventing Cloud Run from spinning up far more instances than actually needed under load. Developers tuning Cloud Run concurrency under load testing can track fixes like this through daily.dev."}},{"@type":"Question","name":"Why is my k6 load test returning much larger response payloads than expected?","acceptedAnswer":{"@type":"Answer","text":"The default HTTP headers sent by Grafana Cloud k6 do not include Accept-Encoding, so responses are not compressed and come back far larger than they would in real browser traffic. Adding the Accept-Encoding header to test requests and enabling compression on the server resolves the discrepancy and cuts actual egress costs. Anyone debugging inflated load test traffic can keep up with gotchas like this via daily.dev."}},{"@type":"Question","name":"What free cloud-based load testing tools support custom scripts and running tests both locally and in the cloud?","acceptedAnswer":{"@type":"Answer","text":"Grafana Cloud k6 supports writing real test scripts instead of a GUI-only builder, letting them live in source control, and running tests either locally against a machine or via the k6 cloud command against a staging environment. It also allows HTTP header customization without duplication and offers a free tier for infrequent use. Developers comparing low-cost load testing tools can follow practical experiences like this on daily.dev."}}]}
```

