# PerformanceTestCase

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Deprecated in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# PerformanceTestCase

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/test/PerformanceTestCase "View this page in Kotlin")\|Java

`
public


interface
PerformanceTestCase
`  
`


`

|----------------------------------|
| android.test.PerformanceTestCase |

<br />

*** ** * ** ***

<br />

**This interface was deprecated in API level 24.**   
Use[AndroidJUnitRunner](https://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner)instead. New tests should be written using the[Android Testing Support Library](https://developer.android.com/tools/testing-support-library).

More complex interface performance for test cases. If you want your test to be used as a performance test, you must implement this interface.

## Summary

|                                                                                                                   ### Nested classes                                                                                                                    ||
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` interface` | [PerformanceTestCase.Intermediates](https://developer.android.com/reference/android/test/PerformanceTestCase.Intermediates) Callbacks for[PerformanceTestCase](https://developer.android.com/reference/android/test/PerformanceTestCase). |

|                                                                                                                                                                            ### Public methods                                                                                                                                                                            ||
|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract boolean` | ` `[isPerformanceOnly](https://developer.android.com/reference/android/test/PerformanceTestCase#isPerformanceOnly())`() ` This method is used to determine what modes this test case can run in.                                                                                                                                                    |
| ` abstract int`     | ` `[startPerformance](https://developer.android.com/reference/android/test/PerformanceTestCase#startPerformance(android.test.PerformanceTestCase.Intermediates))`(`[PerformanceTestCase.Intermediates](https://developer.android.com/reference/android/test/PerformanceTestCase.Intermediates)` intermediates) ` Set up to begin performance tests. |

## Public methods

### isPerformanceOnly

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract boolean isPerformanceOnly ()
```

This method is used to determine what modes this test case can run in.

<br />

|                                    Returns                                    ||
|-----------|--------------------------------------------------------------------|
| `boolean` | true if this test case can only be run in performance mode. <br /> |

### startPerformance

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract int startPerformance (PerformanceTestCase.Intermediates intermediates)
```

Set up to begin performance tests. The 'intermediates' is a communication channel to send back intermediate performance numbers -- if you use it, you will probably want to ensure your test is only executed once by returning 1. Otherwise, return 0 to allow the test harness to decide the number of iterations.

If you return a non-zero iteration count, you should call[intermediates.startTiming](https://developer.android.com/reference/android/test/PerformanceTestCase.Intermediates#startTiming(boolean))and[intermediates.endTiming](https://developer.android.com/reference/android/test/PerformanceTestCase.Intermediates#finishTiming(boolean))to report the duration of the test whose performance should actually be measured.

<br />

|                                               Parameters                                                ||
|-----------------|----------------------------------------------------------------------------------------|
| `intermediates` | `PerformanceTestCase.Intermediates`: Callback for sending intermediate results. <br /> |

|                                        Returns                                        ||
|-------|--------------------------------------------------------------------------------|
| `int` | int Maximum number of iterations to run, or 0 to let the caller decide. <br /> |