| Title: | Benchmark the Performance of 'shiny' Applications | 
| Version: | 0.1.1 | 
| Description: | Compare performance between different versions of a 'shiny' application based on 'git' references. | 
| License: | LGPL-3 | 
| URL: | https://github.com/Appsilon/shiny.benchmark, https://github.com/Appsilon/shiny.benchmark | 
| BugReports: | https://github.com/Appsilon/shiny.benchmark/issues | 
| SystemRequirements: | yarn 1.22.17 or higher, Node 12 or higher | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.2.3 | 
| Depends: | R (≥ 3.1.0) | 
| Suggests: | covr, knitr, lintr, rcmdcheck, rmarkdown, mockr, spelling | 
| Imports: | dplyr, ggplot2, glue, jsonlite, methods, progress, renv, shinytest2, stringr, testthat, fs | 
| Language: | en-US | 
| NeedsCompilation: | no | 
| Packaged: | 2023-01-18 12:30:56 UTC; kuba | 
| Author: | Douglas Azevedo [aut, cre], Appsilon Sp. z o.o. [cph] | 
| Maintainer: | Douglas Azevedo <opensource+douglas@appsilon.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-01-20 09:50:02 UTC | 
Add the sendTime function to the .js file
Description
Add the sendTime function to the .js file
Usage
add_sendtime2js(js_file, txt_file)
Arguments
| js_file | Path to the .js file to add code | 
| txt_file | Path to the file to record the execution times | 
Execute performance tests for a list of commits
Description
Execute performance tests for a list of commits
Usage
benchmark(
  commit_list,
  cypress_dir = NULL,
  shinytest2_dir = NULL,
  tests_pattern = NULL,
  app_dir = getwd(),
  port = 3333,
  use_renv = TRUE,
  renv_prompt = TRUE,
  n_rep = 1,
  debug = FALSE
)
Arguments
| commit_list | A list of commit hash codes, branches' names or anything else you can use with git checkout ... | 
| cypress_dir | The directory with tests recorded by Cypress. It can also be a vector of the same size of commit_list | 
| shinytest2_dir | The directory with tests recorded by shinytest2 It can also be a vector of the same size of commit_list | 
| tests_pattern | Cypress/shinytest2 files pattern. E.g. 'performance' It can also be a vector of the same size of commit_list. If it is NULL, all the content in cypress_dir/shinytest2_dir will be used | 
| app_dir | The path to the application root | 
| port | Port to run the app | 
| use_renv | In case it is set as TRUE, package will try to apply renv::restore() in all branches. Otherwise, the current loaded list of packages will be used in all branches. | 
| renv_prompt | Prompt the user before taking any action? | 
| n_rep | Number of replications desired | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Value
Return a shiny_benchmark object containing the benchmark call,
elapsed time and a list with the collected performance times
Run the performance test based on multiple commits using Cypress
Description
Run the performance test based on multiple commits using Cypress
Usage
benchmark_cypress(
  commit_list,
  cypress_dir,
  tests_pattern,
  app_dir,
  port,
  use_renv,
  renv_prompt,
  n_rep,
  debug
)
Arguments
| commit_list | A list of commit hash codes, branches' names or anything else you can use with git checkout ... | 
| cypress_dir | The directory with tests recorded by Cypress. It can also be a vector of the same size of commit_list | 
| tests_pattern | Cypress/shinytest2 files pattern. E.g. 'shinytest2' It can also be a vector of the same size of commit_list. If it is NULL, all the content in cypress_dir/shinytest2_dir will be used | 
| app_dir | The path to the application root | 
| port | Port to run the app | 
| use_renv | In case it is set as TRUE, package will try to apply renv::restore() in all branches. Otherwise, the current loaded list of packages will be used in all branches. | 
| renv_prompt | Prompt the user before taking any action? | 
| n_rep | Number of replications desired | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Value
Return a list with the collected performance times
Run the performance test based on a multiple commits using shinytest2
Description
Run the performance test based on a multiple commits using shinytest2
Usage
benchmark_shinytest2(
  commit_list,
  shinytest2_dir,
  tests_pattern,
  app_dir,
  use_renv,
  renv_prompt,
  n_rep,
  debug
)
Arguments
| commit_list | A list of commit hash codes, branches' names or anything else you can use with git checkout ... | 
| shinytest2_dir | The directory with tests recorded by shinytest2 It can also be a vector of the same size of commit_list | 
| tests_pattern | shinytest2 files pattern. E.g. 'performance' It can also be a vector of the same size of commit_list. If it is NULL, all the content in cypress_dir/shinytest2_dir will be used | 
| app_dir | The path to the application root | 
| use_renv | In case it is set as TRUE, package will try to apply renv::restore() in all branches. Otherwise, the current loaded list of packages will be used in all branches. | 
| renv_prompt | Prompt the user before taking any action? | 
| n_rep | Number of replications desired | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Value
Return a list with the collected performance times
Check for uncommitted files
Description
Check for uncommitted files
Usage
check_uncommitted_files()
Checkout GitHub branch
Description
checkout and go to a different branch
Usage
checkout(branch, debug)
Arguments
| branch | Commit hash code or branch name | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Checkout GitHub files
Description
Checkout anything created by the app. It prevents errors when changing branches
Usage
checkout_files(debug)
Arguments
| debug | Logical. TRUE to display all the system messages on runtime | 
Create the cypress configuration list
Description
Create the cypress configuration list
Usage
create_cypress_list(plugins_file, port)
Arguments
| plugins_file | The path to the Cypress plugins | 
| port | Port to run the app | 
Create the JS code to track execution time
Description
Create the JS code to track execution time
Usage
create_cypress_plugins()
Create a temporary directory to store everything needed by Cypress
Description
Create a temporary directory to store everything needed by Cypress
Usage
create_cypress_structure(app_dir, port, debug)
Arguments
| app_dir | The path to the application root | 
| port | Port to run the app | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Create the cypress files under project directory
Description
Create the cypress files under project directory
Usage
create_cypress_tests(project_path, cypress_dir, tests_pattern)
Arguments
| project_path | The path to the project with all needed packages installed | 
| cypress_dir | The directory with tests recorded by Cypress | 
| tests_pattern | Cypress files pattern. E.g. 'performance'. If it is NULL, all the content will be used | 
Create the list of needed libraries
Description
Create the list of needed libraries
Usage
create_node_list(tests_path, port)
Arguments
| tests_path | The path to project | 
| port | Port to run the app | 
Create a progress bar to follow the execution
Description
Create a progress bar to follow the execution
Usage
create_progress_bar(total = 100)
Arguments
| total | Total number of replications | 
Create a temporary directory to store everything needed by shinytest2
Description
Create a temporary directory to store everything needed by shinytest2
Usage
create_shinytest2_structure(app_dir)
Arguments
| app_dir | The path to the application root | 
Get the commit date in POSIXct format
Description
Get the commit date in POSIXct format
Usage
get_commit_date(branch)
Arguments
| branch | Commit hash code or branch name | 
Find the hash code of the current commit
Description
Find the hash code of the current commit
Usage
get_commit_hash()
Load an application and instructions to run shiny.benchmark
Description
This function aims to generate a template to be used
by shiny.benchmark. It will create the necessary structure on path with
some examples of tests using Cypress and shinytest2. Also, a simple
application will be added to the folder as well as instructions on how
to perform the performance checks. Be aware that a new git repo is need in
the selected path.
Usage
load_example(path, force = FALSE)
Arguments
| path | A character vector of full path name | 
| force | Create example even if directory does not exist or is not empty | 
Value
Print on the console instructions to run the example
Examples
load_example(file.path(tempdir(), "example_destination"), force = TRUE)
Move tests to a temporary folder
Description
Move tests to a temporary folder
Usage
move_shinytest2_tests(project_path, shinytest2_dir)
Arguments
| project_path | The path to the project | 
| shinytest2_dir | The directory with tests recorded by shinytest2 | 
Running the node script "performance_test" is system-dependent
Description
Running the node script "performance_test" is system-dependent
Usage
performance_test_cmd(project_path)
Arguments
| project_path | path to project directory (one level above node) | 
Plot for shiny_benchmark class
Description
Plot for shiny_benchmark class
Usage
## S3 method for class 'shiny_benchmark'
plot(x, ...)
Arguments
| x | shiny_benchmark object | 
| ... | Other parameters | 
Value
Return a ggplot object that compares different git refs
Print for shiny_benchmark class
Description
Print for shiny_benchmark class
Usage
## S3 method for class 'shiny_benchmark'
print(x, ...)
Arguments
| x | shiny_benchmark object | 
| ... | Other parameters | 
Value
Print on the console information about the shiny_benchmark object
Check and restore renv
Description
Check whether renv is in use in the current branch. Raise error if renv is not in use or apply renv:restore() in the case the package is present
Usage
restore_env(branch, renv_prompt)
Arguments
| branch | Commit hash code or branch name. Useful to create an informative error message | 
| renv_prompt | Prompt the user before taking any action? | 
Run the performance test based on a single commit using Cypress
Description
Run the performance test based on a single commit using Cypress
Usage
run_cypress_ptest(
  commit,
  project_path,
  cypress_dir,
  tests_pattern,
  use_renv,
  renv_prompt,
  n_rep,
  debug
)
Arguments
| commit | A commit hash code or a branch's name | 
| project_path | The path to the project with all needed packages installed | 
| cypress_dir | The directory with tests recorded by Cypress | 
| tests_pattern | Cypress files pattern. E.g. 'performance'. If it is NULL, all the content will be used | 
| use_renv | In case it is set as TRUE, package will try to apply renv::restore() in all branches. Otherwise, the current loaded list of packages will be used in all branches. | 
| renv_prompt | Prompt the user before taking any action? | 
| n_rep | Number of replications desired | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Value
Return a data.frame with the collected performance time
Run the performance test based on a single commit using shinytest2
Description
Run the performance test based on a single commit using shinytest2
Usage
run_shinytest2_ptest(
  commit,
  project_path,
  app_dir,
  shinytest2_dir,
  tests_pattern,
  use_renv,
  renv_prompt,
  n_rep,
  debug
)
Arguments
| commit | A commit hash code or a branch's name | 
| project_path | The path to the project | 
| app_dir | The path to the application root | 
| shinytest2_dir | The directory with tests recorded by shinytest2 | 
| tests_pattern | shinytest2 files pattern. E.g. 'performance'. If it is NULL, all the content will be used | 
| use_renv | In case it is set as TRUE, package will try to apply renv::restore() in all branches. Otherwise, the current loaded list of packages will be used in all branches. | 
| renv_prompt | Prompt the user before taking any action? | 
| n_rep | Number of replications desired | 
| debug | Logical. TRUE to display all the system messages on runtime | 
Value
Return a data.frame with the collected performance time
An object of 'shiny_benchmark' class
Description
An object of 'shiny_benchmark' class
Slots
- call
- Function call 
- time
- Time elapsed 
- performance
- List of measurements (one entry for each commit) 
Return statistics based on the set of tests replications
Description
Return statistics based on the set of tests replications
Usage
summarise_commit(object)
Arguments
| object | A shiny_benchmark object | 
Summary for shiny_benchmark class
Description
Summary for shiny_benchmark class
Usage
## S3 method for class 'shiny_benchmark'
summary(object, ...)
Arguments
| object | shiny_benchmark object | 
| ... | Other parameters | 
Value
Return a data.frame with performance tests' summary statistics