Autotest本身是一个自动化测试框架,可以在上面添加各种测试工具用于系统测试。前几天我在上面添加了几个基于龙芯桌面5.0系统的性能测试工具。现在做以下总结,大体写以下添加的过程。

以unixbench5为例,首先在client/tests目录下有一个文件夹:unixbench5,此文件夹有如下文件:
[root@Autotest-server unixbench5]# ls
control Makefile.patch UnixBench5.1.3.tgz unixbench5.py
其中control是控制文件,添加用例到autotest上时首先用到的,里面有测试名称NAME(很重要,添加新的用例时会修改这里的),测试属性、测试类、测试说明等,最后一行是测试执行的函数:

job.run_test('unixbench5',args='-c 1 -c 4', iterations=3)

run_test函数是job类里的一个方法,里面有很多参数,unixbench5是测试的用例,跟文件unixbench5.py直接对应,一般得相同才可以。"args"是执行参数,"iterations"是执行次数,一般是执行3次取平均值。

unixbench5.py文件是运行测试程序要用的脚本文件,里面有一个"unixbench5"的类,这个名词一般与外部的文件名相同,在这个类下有几个函数:

import os
import re
from autotest.client import test, utils
from autotest.client.shared import error #需要的模块 class unixbench5(test.test):#类,名词应该和外部的文件相同。 """
This test measure system wide performance by running the following tests:
- Dhrystone - focuses on string handling.
- Whetstone - measure floating point operations.
- Execl Throughput - measure the number of execl calls per second.
- File Copy
- Pipe throughput
- Pipe-based context switching
- Process creation - number of times a process can fork and reap
- Shell Scripts - number of times a process can start and reap a script
- System Call Overhead - estimates the cost of entering and leaving the
kernel.
- Graphical Tests - Both 2D and 3D graphical tests are provided. @see: http://code.google.com/p/byte-unixbench/
@author: Dale Curtis <dalecurtis@google.com>
""" #说明文件
version = 5 #版本 def initialize(self): #初始化函数,检查是否含有gcc,作用不是太大
self.job.require_gcc()
self.err = [] def setup(self, tarball='UnixBench5.1.3.tgz', args=''): #配置函数,创建源码目录,解压源码文件
"""
Compiles unixbench. @tarball: Path or URL to a unixbench tarball
@see: http://byte-unixbench.googlecode.com/files/unixbench-5.1.3.tgz
"""
tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
utils.extract_tarball_to_dir(tarball, self.srcdir)
os.chdir(self.srcdir)
if 'graphics' in args or 'gindex' in args:
utils.system('patch -p1 < %s/Makefile.patch' % self.bindir) #打patch包
utils.make() #编译安装 def run_once(self, args=''): #执行函数,用来执行测试用例,运行程序,收集结果到特定文件里。 vars = 'UB_TMPDIR="%s" UB_RESULTDIR="%s"' % (self.tmpdir,
self.resultsdir)
os.chdir(self.srcdir) self.report_data = utils.system_output('export DISPLAY=:0.0;'+ vars + ' ./Run ' + args)
self.results_path = os.path.join(self.resultsdir,
'raw_output_%s' % self.iteration)
utils.open_write_close(self.results_path, self.report_data)

Makefile.patch是一个patch包,非必须。UnixBench5.1.3.tgz是源码文件,一般会有。

以上就是一个测试用例的基本文件目录。如果要添加新的测试工具,需要修改control、unixbench5.py里的相关信息,还要替换源码目录。
修改完所有的信息后需要在auotest目录下执行:./utils/test_importer.py -t client/tests/test_tool/即可。test_tool是测试用例的名称。修改完后直接登录auotest服务器的网页即可看到用例已经更新到列表里,可以使用了。
总结:
可以看出添加一个测试用例不是很难,在原有的测试用例上简单修改即可,需要有一点的python知识,因为测试用例都是用python写的。

Autotest添加测试用例小结的更多相关文章

  1. xss、SQL测试用例小结

    xss测试用例小结: <script>alert("跨站")</script> (最常用)<img scr=javascript:alert(&quo ...

  2. eclipse 添加 maven 小结

    今天想创建了一个maven项目,由于之前重装系统,maven的一些配置要重新进行配置,y有时候一点小问题那真是一路曲折,为防止之后再遇到此问题,小结一下吧! 环境: eclipse   apache- ...

  3. pytest文档38-allure.setp添加测试用例步骤

    前言 一般流程性的测试用例,写成自动化用例时,步骤较多写起来会比较长.在测试用例里面添加详细的步骤有助于更好的阅读,也方便报错后快速的定位到问题. 举个常见的测试场景用例:从登陆开始,到浏览商品添加购 ...

  4. unittest添加测试用例方法

    1. suite=unittest.TestLoader().loadTestsFromTestCase(changedTestHJ)unittest.TextTestRunner(verbosity ...

  5. 阿里云RDS数据库sql server 导入数据并添加作业小结

    在阿里云购买ECS服务器和RDS数据库时,要注意网络类型要一致,最好都是VPC,否则ECS不能在内网访问RDS,只能从外网访问:在RDS控制台左侧,数据库安全性的IP白名单中添加ECS外网IP:在数据 ...

  6. xss测试用例小结

    <script>alert("跨站")</script> (最常用) <img scr=javascript:alert("跨站" ...

  7. python unittest 框架添加测试用例及运行

    找出要测试的testcase,并加入到Testsuite,运行Testsuite并把结果给TestResult1.创建TestSuite实例对象suite = unittest.TestSuite() ...

  8. 使用Groovy+Spock构建可配置的订单搜索接口测试用例集

    概述 测试是软件成功上线的安全网.基本的测试包含单元测试.接口测试.在 "使用Groovy+Spock轻松写出更简洁的单测" 一文中已经讨论了使用GroovySpock编写简洁的单 ...

  9. TFS - 使用微软测试管理器实现跨团队项目的测试用例管理

    在团队项目之间实现测试用例和测试计划的共享,是很多客户关注的问题.尤其在开发产品+服务的团队中,对测试用例的共享要求比较高.下面就如何在Team Foundation Server中如何实现团队项目之 ...

随机推荐

  1. Keepalived高可用集群实践

    (1)实践的硬件环境准备 准备4台物理服务器或者4台VM虚拟机,其中两台用来做Keepalived服务器,两台做web测试站点 HOSTNAME I  P 解    释 lb01 10.0.0.7 K ...

  2. struts2 之 ServletAPI

    1. 在struts2中有两种方式使用SercletAPI,一种解耦方式,一种耦合方式. 2. 解耦方式就是使用ActionContext 来实现,是完全解耦 servletAPI. ActionCo ...

  3. Oracle自动备份.bat 最新更新(支持Win10了)

    20170418更新: 很多年没有用了,最近两天打开来用,发现在Win10下面At命令已经被淘汰不能使用了,还有不少命令工作方式和原来也不一样了 所以就更新了一下下,使用 schtasks 命令代替了 ...

  4. iOS·UIKit框架注解 & Foundation

  5. GreenDao教程1

    最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个框架还是不错的.直接面向对象的,可以通过对对象的操作,实现数据的存储. 但是官网上的API是在不敢恭维,文档写的很糙,看了半天,才搞懂一 ...

  6. 【2017-04-25】winform公共控件、菜单和工具栏、Tab和无边框窗体制作

    一.公共控件 1. Button   按钮 + 布局 - AutoSize   按钮尺寸自动适应里面内容的长度 - Location    位置 - Margin       控件与控件外边距 - S ...

  7. EMMC与RAND的区别

    作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. EMMC与RAND的区别 说到两者的区别,必须从flash的发展历程说起,因 ...

  8. 蓝桥杯-第39级台阶-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  9. Linux 零拷贝技术

    简介 零拷贝(zero-copy)技术可以减少数据拷贝和共享总线操作的次数,消除通信数据在存储器之间不必要的中间拷贝过程,有效地提高通信效率,是设计高速接口通道.实现高速服务器和路由器的关键技术之一. ...

  10. Android RoboGuice 使用指南

    1.概述 在开发应用时一个基本原则是模块化,并且近最大可能性地降低模块之间的耦合性.在Java平台上Spring Framework 以及.Net 平台 CAB ,SCSF 和Prism (WPF,S ...