在Espresso测试中更改辅助功能字体大小和显示大小

时间:2017-06-19 13:12:24

标签: android android-espresso

如何在运行Espresso测试套件之前更改设备或模拟器的辅助功能设置?

我的目标是使用Spoon以各种不同的辅助功能文本缩放级别捕获应用程序截图,以快速验证布局是否正确;而不是手动验证每个缩放级别。

2 个答案:

答案 0 :(得分:0)

对于测试级别,您可以使用自定义TestRules在使用UiAutomator框架运行测试之前更改字体设置。

对于套件级别,您可以在运行测试套件之前使用adb命令更改设备上的设置(在gradle命令之前)。

adb shell am start com.android.settings/.Settings

Then use these key event to go to which ever setting and change setting

答案 1 :(得分:0)

您可以将这些 adb shell 命令作为测试的一部分运行,也可以在调用测试之前运行的脚本中运行,具体取决于您的需要。

adb shell settings put system font_scale 1.0
adb shell wm density <n>

设置字体大小很容易:字体比例的可能值:

  • 小 - 0.85
  • 默认 - 1.0
  • 大 - 1.15
  • 最大 - 1.30

设置设备密度比较复杂。您可以对密度使用标准比例因子,或选择自定义的内容:

  • 小(比例:0.85)
  • 默认(比例:1.00)
  • 大(比例:1.1)
  • 更大(比例:1.2)
  • 最大(某些设备上没有,规模:1.3)

例如,让我们看看 Pixel 3。

> adb shell wm density
Physical density: 440
Override density: 572

此设备已将屏幕密度调至最大。让我们将其设置为“小”密度。

(默认密度)*(缩放因子)= n 440 x .85 = 374

因此将设备密度设置为“小”的 adb 命令是

> adb shell wm density 374
> adb shell wm density
Physical density: 440
Override density: 374

如果我们想在不进行任何计算的情况下将其重置为默认密度,一个方便的快捷方式是

adb shell wm density reset

由于不同设备的默认/原生密度数不同,您必须首先检索默认密度,然后将其乘以比例因子来计算目标密度。

这是我在 https://alexzh.com/adb-commands-accessibility/#display-size

找到的信息的摘要