Tracing

Struct Tracing 

Source
pub struct Tracing { /* private fields */ }
Expand description

Tracing manager for recording test execution traces.

Traces record screenshots, DOM snapshots, network activity, and action history. They can be viewed using Playwright’s Trace Viewer.

§Example

// Start tracing with screenshots
context.tracing().start(
    TracingOptions::new()
        .name("my-test")
        .screenshots(true)
        .snapshots(true)
).await?;

// ... perform test actions ...

// Stop and save trace
context.tracing().stop("trace.zip").await?;

Implementations§

Source§

impl Tracing

Source

pub async fn start(&self, options: TracingOptions) -> Result<(), ContextError>

Start recording a trace.

§Errors

Returns an error if tracing is already active or CDP commands fail.

§Example
context.tracing().start(
    TracingOptions::new()
        .screenshots(true)
        .snapshots(true)
).await?;
Source

pub async fn stop(&self, path: impl AsRef<Path>) -> Result<(), ContextError>

Stop tracing and save the trace to a file.

The trace is saved as a zip file containing:

  • trace.json: The trace data
  • resources/: Screenshots and other resources
  • network.har: Network activity in HAR format
§Errors

Returns an error if tracing is not active or saving the trace fails.

§Example
context.tracing().stop("trace.zip").await?;
Source

pub async fn stop_discard(&self) -> Result<(), ContextError>

Stop tracing and discard the trace data.

Use this when you don’t need to save the trace (e.g., test passed).

§Errors

Returns an error if tracing is not active.

Source

pub async fn start_chunk(&self) -> Result<(), ContextError>

Start a new trace chunk.

This is useful for long-running tests where you want to save periodic snapshots.

§Errors

Returns an error if tracing is not active.

Source

pub async fn stop_chunk( &self, path: impl AsRef<Path>, ) -> Result<(), ContextError>

Stop the current trace chunk and save it.

§Errors

Returns an error if tracing is not active or saving fails.

Source

pub async fn is_recording(&self) -> bool

Check if tracing is currently active.

Source

pub async fn add_source_file( &self, path: impl Into<String>, content: impl Into<String>, )

Add a source file to include in the trace.

Source files are shown in the Trace Viewer for debugging.

§Example
context.tracing().add_source_file(
    "tests/my_test.rs",
    include_str!("tests/my_test.rs")
).await;
Source

pub async fn collect_sources( &self, dir: impl AsRef<Path>, extensions: &[&str], ) -> Result<(), ContextError>

Collect source files from a directory.

This recursively adds all matching files from the directory.

§Arguments
  • dir - Directory to scan
  • extensions - File extensions to include (e.g., ["rs", "ts"])
§Errors

Returns an error if reading files fails.

Trait Implementations§

Source§

impl Debug for Tracing

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more