タグ

performanceとtestingに関するsh19910711のブックマーク (6)

  • bun testが速いのでvitestから置き換えたらめちゃ高速化された

    きっかけ ユニットテストはvitestを使ってます まあ十分速い でもCIで全testを回すとけっこう時間がかかる bunのtestが速いらしい。置き換えよう 置き換えた結果 before (vitest) 1000弱のtestを回すのに2分44秒かかってた after (bun + vitest) 9割方のtestをbunで実行して2秒。速すぎる bunに移行が難しかった一部だけvitestで実行して7秒 bunってどうなの? どうなんですかね? State of JavaScript 2024: Testing によればother testing toolsの中では3位でした Develop, test, run, and bundle ができるオールインワンツールですが、今回はこのtestの部分だけ使うことにしました bun run testとbun testの違い とりあえず bu

    bun testが速いのでvitestから置き換えたらめちゃ高速化された
    sh19910711
    sh19910711 2025/06/20
    2024 / "bun: Develop, test, run, and bundle ができるオールインワンツールですが、今回はこのtestの部分だけ使う / 9割方のtestをbunで実行して2秒 + 移行が難しかった一部だけvitestで実行して7秒"
  • Playwright と Artillery によるパフォーマンステスト - Qiita

    要約 DevOps や SRE を実践する人向けに、Playwright による E2E テストを Artillery の負荷掛けシナリオとして利用する手法についてハンズオンを交えて紹介します。 課題としては、Playwright で自動生成したスクリプトを手直ししないと難しいパターンがあることを挙げています。 その他、Tips もあります。 はじめに NSSOL Advent Calendar 2022 の 13 日目にも投稿しました、とうふです。 先の記事で軽く説明した通り、私がいま参画している案件では E2E テスト用のスクリプトを流用したパフォーマンステスト を行なっています。 記事では、Playwright で作成した E2E テストスクリプトを使って負荷掛けを行うことでパフォーマンステストを実施する手法について紹介します。 前提知識 Playwright とは Playwri

    Playwright と Artillery によるパフォーマンステスト - Qiita
    sh19910711
    sh19910711 2024/06/17
    "Playwright による E2E テストを Artillery の負荷掛けシナリオとして利用 / Playwright で自動生成したスクリプトを手直ししないと難しいパターンがある / Artillery: DevOps や SRE にフォーカスを当てた Node.js 製の負荷掛けツール" 2022
  • [Python] pytestで処理の遅い箇所を可視化して特定する - Qiita

    プロジェクトのテスト数が増えてくるとCI回すのも遅くなるし、ローカルでこまめにテスト回すぞっていうときもストレスは増えていきます。テストが1万件もあればしょうがないかな、という気にもなりますが、時に「あれ、なんかやたら遅いテストケースがあるぞ?」ということもあります。テストが遅い原因がプロダクトコードにあるのであればより問題です。 pythonのテストフレームワークはpytestを使っているので、以下pytestの場合はこんなことして遅い処理を探し出しているという備忘録。 主にやったことは以下の2つ。 ① pytestの--durationsオプションで処理時間の大きいテストケースを出力する ② pytest-profilingでプロファイルして処理の遅い箇所を特定 テストコード 記事で使用したテストコードです。1~10000000の整数を順に突っ込んだリストを4パターンの方法で作成して

    [Python] pytestで処理の遅い箇所を可視化して特定する - Qiita
    sh19910711
    sh19910711 2024/06/17
    2020 / "--durations=Nというオプションをつけると、最も遅いテスト+前後の処理(setup/teardown)N個を実行結果に表示"
  • 複数台で parallel_tests を動かす場合でも、実行時間ベースでテストを分割できるようにする - Qiita

    RSpec を並列に実行してくれるツールとして parallel_tests があります。このツールは CPU 数などの情報から、自動で最適な並列数で RSpec などを複数同時に実行してくれるツールです。これにより通常よりも早くテストを完了することが出来ます。 Qiita でも parallel_tests を使いつつ、複数のマシンを利用して CI での自動テストを回しています。(テストが大量にあるのと、テストを動かすマシンスペックの都合などで、こういう構成になっています。) こういう感じで並列にテストを回す場合は、実行時間ベースでテストを分割して割り振ることで、テスト完了までの時間が早くなります。parallel_tests かつ複数マシンの場合、そうするのがやや面倒なのですが、うまく設定できたので、今回はそのやり方一例として紹介します。 (前提知識): parallel_tests

    複数台で parallel_tests を動かす場合でも、実行時間ベースでテストを分割できるようにする - Qiita
    sh19910711
    sh19910711 2024/06/16
    "parallel_tests: CPU 数などの情報から、自動で最適な並列数で RSpec などを複数同時に実行してくれる / 並列にテストを回す場合は、実行時間ベースでテストを分割して割り振ることで、テスト完了までの時間が早くなります"
  • Pythonのテスト実行を並列化する - Qiita

    テストと並列化 ソフトウェアエンジニアリングを行う上で開発者テストは欠かせないものとなっています。テストはコードに対する素早いフィードバックを開発者に与え、高いアジリティを持った開発を支援します。また、CIによりテストを実行することで、コードのチェックインのたびにリグレッションがないかを検査することが容易になります。 ところが開発を続けていくとやがてテストの数は増え、実行にかかる時間も増えていきます。テストの実行にあまりに時間がかかると、開発者へのフィードバックは遅くなり、テストから得られる恩恵も減ってしまいます。 この記事では並列化によるテスト実行の高速化を、Pythonのコードを例に紹介したいと思います。 並列化の実装 ここでは2段階の並列化を行います。1つ目は単一の計算インスタンス内におけるマルチプロセッシングによる並列化、2つ目は複数の計算インスタンスを使うことによる並列化です。

    Pythonのテスト実行を並列化する - Qiita
    sh19910711
    sh19910711 2024/06/16
    "テストはコードに対する素早いフィードバックを開発者に与え / やがてテストの数は増え ~ 時間がかかると、開発者へのフィードバックは遅くなり、テストから得られる恩恵も減ってしまいます" 2022
  • OverlayFS でデータ入りのテスト用 DB を素早く起動する - Mobile Factory Tech Blog

    駅メモ!開発基盤チームの id:xztaityozx です。 今回はテスト実行のボトルネックを OverlayFS を利用することで解消した話と、OverlayFS の動作を調べるためにbpftraceを使った話をします。 かんたん概要 Test::mysqldを使って挿入済みのデータを持ったmysqldをテストごとに起動していた データが増えてきたことでコピーがめちゃくちゃ遅くなり、開発体験が最悪になった コピーを OverlayFS でのマウントに置き換えてすごく速くした 動作について気になる点があったのでbpftrace を使ってトレースを行い、カーネル関数の呼び出しも観察した 前提 この記事で登場する主なツールのバージョンを示します Ubuntu 22.04.4(WSL2) カーネル: 5.15.146.1-microsoft-standard-WSL2 hyperfine 1.1

    OverlayFS でデータ入りのテスト用 DB を素早く起動する - Mobile Factory Tech Blog
    sh19910711
    sh19910711 2024/06/13
    "挿入済みのデータを持ったmysqldをテストごとに起動 / データが増えてきたことでコピーがめちゃくちゃ遅くなり、開発体験が最悪に / OverlayFS をコンテナにマウントできる"
  • 1