android o vts测试项,安卓官方测试工具vts

安卓官方测试工具vts

之前在审计android hal层源码时注意到存在很多test文件,但是又不能直接使用。

谷歌肯定通过某种方式将他们集成到一起,通过搜索得知为vts

vts简介

vts是谷歌给vendor作测试用的,具体可以参阅官方文档。像我这样的安全研究员

可以用它来fuzz感兴趣的模块,它还提供了dashboard,通过google sdk显示测试

结果,覆盖率等情况,因为我对google sdk不是很熟,所以暂且搁置dashboard,

仅关注vts fuzz脚本编写。

使用方法

前置条件:已经成功编译aosp源码,并且成功刷机

$ make vts -j

$ vts-tradefed

> run vts-codelab -m VtsCodelabHelloWorldTest

Codelab给出示例代码,这里做一个简单介绍:

AndroidTest.xml

test名称为:VtsCodelabHelloWorldTest。

VtsFilePusher将所有需要的文件压入。

VtsMultiDeviceTest指定模块名称,也就是run vts-codelab -m

import logging

from vts.runners.host import asserts

from vts.runners.host import base_test

from vts.runners.host import const

from vts.runners.host import test_runner

class VtsCodelabHelloWorldTest(base_test.BaseTestClass):

"""Two hello world test cases which use the shell driver."""

def setUpClass(self):

self.dut = self.android_devices[0]

self.shell = self.dut.shell

def testEcho1(self):

"""A simple testcase which sends a command."""

results = self.shell.Execute(

"echo hello_world") # runs a shell command.

logging.info(str(results[const.STDOUT])) # prints the stdout

asserts.assertEqual(results[const.STDOUT][0].strip(),

"hello_world") # checks the stdout

asserts.assertEqual(results[const.EXIT_CODE][0],

0) # checks the exit code

def testEcho2(self):

"""A simple testcase which sends two commands."""

results = self.shell.Execute(["echo hello", "echo world"])

logging.info(str(results[const.STDOUT]))

asserts.assertEqual(len(results[const.STDOUT]),

2) # check the number of processed commands

asserts.assertEqual(results[const.STDOUT][0].strip(), "hello")

asserts.assertEqual(results[const.STDOUT][1].strip(), "world")

asserts.assertEqual(results[const.EXIT_CODE][0], 0)

asserts.assertEqual(results[const.EXIT_CODE][1], 0)

if __name__ == "__main__":

test_runner.main()

VtsCodelabHelloWorldTest继承自BaseTestClass,它有四个默认方法:

setUpClass:在启动时调用

setUp:在执行每个测试用例前调用

tearDown:在执行完每个测试用例后调用

tearDownClass:在结束时清理

测试用例是一个以test开头的函数

有心情再写吧,估计接下来几天要忙成狗开始刚nfc了

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值