---
title: "Exécuter son propre JavaScript dans un test smartphone"
sidebarTitle: "Script"
description: Exécuter votre propre JavaScript quand aucun step intégré ne convient.
lastUpdated: "2026-09-23"
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

Exécutez votre propre JavaScript dans le test : gérer un flux qu'aucun step intégré ne couvre, calculer une valeur, ou envoyer une métrique personnalisée vers les Analytiques. Le script s'exécute dans la session de l'appareil du test avec l'API WebdriverIO complète disponible.

## Paramètres

| Paramètre | Requis | Description |
| ----------- | -------- | ------------- |
| Titre du step | Non | Le nom affiché pour ce step dans le builder et dans les résultats. |
| Script | Oui | Code JavaScript, édité dans une fenêtre modale dédiée. |
| Ignorer l'erreur sur ce step | Non | L'exécution continue avec le step suivant si le script lève une erreur. Par défaut : désactivé. |

Dans le script, vous pouvez utiliser l'objet WebdriverIO `browser` pour piloter la session, et les helpers `test`, par exemple :

```javascript
// Push a custom metric to Analytics
test.metrics.create("checkout", { basket_total: 39.98 }, { currency: "EUR" });
```

## Résultats et métriques

- **Timing** : début, fin et durée (en secondes) enregistrés dans le résultat du step.
- **Statut** : échec si le script lève une erreur, succès sinon.
- **Sortie** : tout ce que le script journalise est disponible dans la sortie du step pour le débogage.
- **Métriques personnalisées** : les métriques créées avec `test.metrics.create(measurement, fields, tags)` remontent vers les Analytiques comme toute métrique intégrée.

## Et ensuite ?

<Columns cols={2}>
  <Card title="Set variable" icon="brackets-curly" href="/fr/tests/actions/smartphone/setvariable">

    Stocker une valeur sans écrire de code

</Card>
  <Card title="Analytiques" icon="chart-line" href="/fr/analytics/dashboards">

    Où les métriques personnalisées apparaissent

</Card>
</Columns>
