diff --git a/CMakeLists.txt b/CMakeLists.txt
index c99c03dbe130c957ac3300f8ef6552a0aa38e69e..21f874740cc64102ede231e456002f9bb85d2cc3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -200,6 +200,10 @@ option(OGS_USE_MFRONT
        OFF
 )
 
+option(OGS_WRITE_BENCHMARK_COMMANDS "" OFF)
+message(STATUS "${_benchmark_run_commands}")
+# set(_benchmark_run_commands "exe ; cmd ; name\n" CACHE INTERNAL "")
+
 include(packaging/Pack)
 
 # ---- Subdirectories ----
@@ -239,6 +243,14 @@ if(OGS_USE_PIP)
     setup_venv()
 endif()
 
+message(STATUS "${_benchmark_run_commands}")
+
+if(OGS_WRITE_BENCHMARK_COMMANDS)
+    file(WRITE ${PROJECT_BINARY_DIR}/benchmark_commands.csv
+         "${_benchmark_run_commands}"
+    )
+    unset(_benchmark_run_commands CACHE)
+endif()
 file(WRITE ${PROJECT_BINARY_DIR}/disabled-tests.log "${DISABLED_TESTS_LOG}")
 unset(DISABLED_TESTS_LOG CACHE) # Don't write to CMakeCache.txt
 
diff --git a/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/sen_shear.ipynb b/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/sen_shear.ipynb
index 2c70d680e81bcb323443600d004992522fe5cb86..e5cda442840e7c05604a62a4f5b36511a59320aa 100644
--- a/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/sen_shear.ipynb
+++ b/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/sen_shear.ipynb
@@ -33,6 +33,7 @@
    ]
   },
   {
+   "attachments": {},
    "cell_type": "markdown",
    "id": "aa987d95",
    "metadata": {},
@@ -48,7 +49,7 @@
     "\n",
     "The boundary conditions are as follows. The displacement along any direction on the bottom edge ($y=-L/2$) was fixed to zero. Also, the displacement at the top edge ($y = L/2$) was prescribed along the $x$-direction, where the $y$-direction was taken to be zero.\n",
     "\n",
-    "<img src=\"./shear_model.png\" width=\"60%\">"
+    "<img src=\"figures/shear_model.png\" width=\"60%\">"
    ]
   },
   {
diff --git a/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/shear_model.png b/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/shear_model.png
deleted file mode 100644
index 8223789f1a0043be11eda2f639e65af0bb55a377..0000000000000000000000000000000000000000
Binary files a/Tests/Data/PhaseField/PForthotropy_jupyter_notebook/shear_model.png and /dev/null differ
diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake
index 5fafb631fa45ce38c21e6b64774a40d76ab25785..b8ee9918e8e585372f34feaaf1809ef419bb4c16 100644
--- a/scripts/cmake/test/AddTest.cmake
+++ b/scripts/cmake/test/AddTest.cmake
@@ -485,6 +485,23 @@ Use six arguments version of AddTest with absolute and relative tolerances"
     add_dependencies(ctest ${AddTest_EXECUTABLE})
     add_dependencies(ctest-large ${AddTest_EXECUTABLE})
 
+    if(OGS_WRITE_BENCHMARK_COMMANDS)
+        string(
+            REPLACE
+                ";"
+                " "
+                _cmd
+                "${AddTest_WRAPPER} ${AddTest_WRAPPER_ARGS} ${AddTest_EXECUTABLE} ${AddTest_EXECUTABLE_ARGS}"
+        )
+        string(REPLACE "${Data_BINARY_DIR}/" "" _cmd "${_cmd}")
+        string(REPLACE "-o" "" _cmd "${_cmd}")
+        # string(STRIP "${_cmd}" _cmd)
+        set(_benchmark_run_commands
+            "${_benchmark_run_commands} ${AddTest_EXECUTABLE} ; ${_cmd} ; ${TEST_NAME}\n"
+            CACHE INTERNAL ""
+        )
+    endif()
+
     if(NOT AddTest_TESTER OR OGS_COVERAGE)
         return()
     endif()