Autotest添加测试用例小结
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添加测试用例小结的更多相关文章
- xss、SQL测试用例小结
xss测试用例小结: <script>alert("跨站")</script> (最常用)<img scr=javascript:alert(&quo ...
- eclipse 添加 maven 小结
今天想创建了一个maven项目,由于之前重装系统,maven的一些配置要重新进行配置,y有时候一点小问题那真是一路曲折,为防止之后再遇到此问题,小结一下吧! 环境: eclipse apache- ...
- pytest文档38-allure.setp添加测试用例步骤
前言 一般流程性的测试用例,写成自动化用例时,步骤较多写起来会比较长.在测试用例里面添加详细的步骤有助于更好的阅读,也方便报错后快速的定位到问题. 举个常见的测试场景用例:从登陆开始,到浏览商品添加购 ...
- unittest添加测试用例方法
1. suite=unittest.TestLoader().loadTestsFromTestCase(changedTestHJ)unittest.TextTestRunner(verbosity ...
- 阿里云RDS数据库sql server 导入数据并添加作业小结
在阿里云购买ECS服务器和RDS数据库时,要注意网络类型要一致,最好都是VPC,否则ECS不能在内网访问RDS,只能从外网访问:在RDS控制台左侧,数据库安全性的IP白名单中添加ECS外网IP:在数据 ...
- xss测试用例小结
<script>alert("跨站")</script> (最常用) <img scr=javascript:alert("跨站" ...
- python unittest 框架添加测试用例及运行
找出要测试的testcase,并加入到Testsuite,运行Testsuite并把结果给TestResult1.创建TestSuite实例对象suite = unittest.TestSuite() ...
- 使用Groovy+Spock构建可配置的订单搜索接口测试用例集
概述 测试是软件成功上线的安全网.基本的测试包含单元测试.接口测试.在 "使用Groovy+Spock轻松写出更简洁的单测" 一文中已经讨论了使用GroovySpock编写简洁的单 ...
- TFS - 使用微软测试管理器实现跨团队项目的测试用例管理
在团队项目之间实现测试用例和测试计划的共享,是很多客户关注的问题.尤其在开发产品+服务的团队中,对测试用例的共享要求比较高.下面就如何在Team Foundation Server中如何实现团队项目之 ...
随机推荐
- NPOI操作类
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- Asp .net core api+Entity Framework 实现数据的存取到数据库中
最近在学dotNetCore 所以尝试了一下api 这个功能 不多说了大致实现如下 1.用vs2017建立一个Asp.net Core Web 应用程序 在弹出的对话框中选择 Web API 项目名 ...
- vim 字符串替换整理
公司项目测试,要在vi编辑其中进行多路径修改,这时候用到了字符串替换的知识,在这里我自己整理了一下. 一.基本内容替换,无特殊符号 :s/old/new/ 替换当前行第一个 old 为 new ...
- 腾讯云无法绑定公网IP问题解释与解决方案。
http://blog.csdn.net/chenggong2dm/article/details/51475222 解释:公网IP并不直接配置在服务器上,而是在服务器外部的路由上,通过某种映射连接. ...
- JDK版本不匹配...
Java compiler level does not match the version of the installed Java project facet. 今天从把交通厅的项目,导进来就报 ...
- hadoop单机环境搭建
[在此处输入文章标题] Hadoop单机搭建 1. 工具准备 1) Hadoop Linux安装包 2) VMware虚拟机 3) Java Linux安装包 4) Window 电脑一台 2. 开始 ...
- django restframework serializer 增加自定义字段
在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...
- iframe框架的应用
同学接私活,我写几个页面. 后台系统,点击侧栏菜单后,右边div的要显示对应的内容.就是说,没选一下左边的菜单,右边的内容都要变化. 这次首先尝试了一下Oldfasional办法--iframe框架. ...
- CSS3特效----制作3D旋转导航
大致思路:首先给 three-d-box 设置一个 transition是不可少的 然后每个 a 标签里面有两个 span 一个叫 font 一个叫 back,默认状态下 font 旋转0度,也就是没 ...
- linux上安装tcl
1. 首先下载安装包,推荐下载activetcl(对tcl源码进行了预编译,安装步骤简单).打开网址http://activestate.com找到activetcl的社区版(社区版是免费的,找到li ...