精华内容
下载资源
问答
  • Python 编写自动化工具

    万次阅读 多人点赞 2017-08-29 00:41:44
    但是假如我们要做跨平台的开发,根据每个平台去开发一套功能相同的自动化脚本显然不是最好的选择,选择跨平台通用的脚本是更好的选择,Python 就是常用来编写自动化工具的跨平台脚本语言。Python 环境安装:1.资源...

    引言:

    在开发过程中,我们经常需要编写一些自动化的工具,例如:

    • Windows 下的 BATCH (批处理)
    • Linux 下的 Shell

    但是假如我们要做跨平台的开发,根据每个平台去开发一套功能相同的自动化脚本显然不是最好的选择,选择跨平台通用的脚本是更好的选择,Python 就是常用来编写自动化工具的跨平台脚本语言。

    Python 环境安装:

    1.资源下载:

    直接到 Python 官网 下载安装包,有两个分支:2.x 和 3.x,两者有着巨大的差别,当然现在比较流行的还是 2.7.x 系列,这里我直接下载此系列的最新版本:python-2.7.13.msi

    2.安装步骤:

    过程十分简单,双击打开安装包,一直 Next 直到安装完成,记得要记录一下其安装目录,后面配置系统环境时要用到。

    3.环境配置:

    打开 计算机 -> 属性 -> 高级系统设置 -> 环境变量... ,然后再 系统变量 中新建一项,设置参数如下:

    变量名:PYTHON_HOME
    变量值:D:\Develope\Python2.7
    

    然后编辑系统变量中的 Path 变量的参数,在变量值最后加上 ;%PYTHON_HOME%;,然后保存编辑内容。然后,打开命令行窗口查询是否配置成功:

    C:\Users\hasee-pc>python --version
    Python 2.7.13
    

    以上说明环境变量的配置已完成。

    4.运行 Python:

    运行 Python 代码块的方式有两种,一种是直接在命令行窗口输入 Python 指令进入交互式编程窗口,然后直接输入代码,键盘 Enter 执行结果,如下:

    C:\Users\hasee-pc>python
    Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (
    Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print "hi,linsh"
    hi,linsh
    

    也可以创建一个 .py 脚本,编辑好脚本内容,例如:

    # test.py
    print "hi,linsh"
    

    然后,在命令行定位到脚本所在目录,执行该脚本,以下两种执行方式都可以:

    D:\Develope\PythonProjects>python test.py
    hi,linsh
    D:\Develope\PythonProjects>test.py
    hi,linsh
    

    # 号用于注释单行,多行注释通常使用三引号 '''""" 开始和结束。


    Python 基础语法:

    这里不会赘述太多细节性的语法,只简述一些必要的基础语法,更详细的可以参考 【 Python 语言参考 】:

    1.特殊标识符:

    • 跟其他编程语言一样,Python 中所有标识符可以包含:英文、数字以及下划线(_),但不能以数字开头;
    • 以下划线开头的表示特殊含义:
      • 单下划线 _ 开头表示不能直接被外部类直接访问的类属性,,需要通过类提供的接口才能进行访问,例如:_foo
      • 双下划线 __ 开头表示类的私有成员,就像很多语言中的 private 权限关键字的作用,例如:__foo
      • 以双下划线开头和结尾代表 Python 中特殊方法专用的标识,例如 __init__() 代表类的构造函数。

    2.缩进和代码块:

    Python 与其他语言最大的不同,在于它不使用 {} 或者像 Lua 那样的关键字来包裹一个代码块以管理类、函数或逻辑判断,而是直接通过 缩进 来管理模块。

    缩进的空白 数量(键盘空格键次数)是可变的,但是所有代码块语句必须包含相同的缩进空白数量。例如:

    if True:
        print "True"
    else:
      	print "False"
    

    通常将编程工具的一次 Tab 键的距离设为 4 个空格 距离,作为一级缩进的空白数。

    3.数据类型和变量:

    Python 有 5 种标准的数据类型:

    Numbers(数字)
    String(字符串)
    List(列表)
    Tuple(元组)
    Dictionary(字典)
    

    但是,在定义变量时,不需要声明变量的类型,变量在使用前需要先进行赋值,此时解释器才能根据赋值的类型为此变量分配创建内存空间并创建此变量,只是声明但不赋值的变量是不能使用的。例如:

    number = 2	    # 整型
    percent = 100.0	# 浮点型
    name = "linsh"	# 字符串
    

    此外,还可以同时对多个变量进行赋值:

    number,percent,name = 2,100.0,"linsh"
    

    4.函数:

    函数的使用一方面是为了提高代码的重用性,另一方面又可以增强代码的可读性和模块化,下面是 Python 定义函数的格式:

    def funcName(param1,param2,...):
    	...
    

    以关键字 def 来声明一个函数,紧跟着是函数名(函数标识符),然后是 () 包围起来的传入参数表,可以是 0 个参数,也可以是多个参数,然后用 : 号开始函数内容的开始。例如:

    # test.py
    # # -*- coding: utf-8 -*-
    
    # 方法定义
    def TestFunc1():
    	print "test1"
    
    def TestFunc2(num):
      	print "test2: num = ",num #str 和 int 类型拼接
        
    # 方法调用
    TestFunc1()
    TestFunc2(66)
    

    执行结果:

    D:\Develope\PythonProjects>test.py
    test1
    test2: num =  66
    

    编写工具:

    1.设计目标:

    首先说一下我要工具的功能:

    遍历某个目录下包括其下子目录中所有指定的后缀文件,然后为这些文件的头部插入指定的字符串。

    2.使用场景:

    设计这样的工具起因是我最近在将之前 CSDN 中的博客搬运到自己的 Hexo 博客空间上,了解的应该知道,假如都是 Markdown 编写的话,搬运的时候只需要在文件头部加上如下的一串额外的内容:

    ---
    title: 博客标题
    date: 博客创建时间(例如:2016-09-03 17:15:22)
    tags: 标签(如:[Hexo,Next],多个的话用,号隔开)
    categories: 分类(如:Web)
    ---
    
    • 标题 title 直接使用文件名称去掉 .md 后缀即可;
    • 时间 date 需要通过文件库获取文件的创建时间;
    • 标签 tags 和分类 categories ,由于我的文件会根据分类放入不同的子目录下,所以直接获取当前文件所在目录的名称即可。

    此外,为了在博客首页只展示部分内容,而不是展开博客的完整内容,还需要在博客中恰当的位置插入这个标签:<!--more--> ,通常加载第一段内容结束的位置。

    3.实现代码:

    根据上面的思路,我们在 source/_posts 目录下创建一个工具脚本,起名为 SuitFileToHexo.py ,然后依次完成以下步骤:

    • 指定 Linux 环境下 Python 解释器目录,并指定编码方式:

      #!/usr/bin/env python
      # -*- coding: utf-8 -*-
      
    • 引入的模块:

      在脚本开始的地方,最先需要做的事情就是把需要用到的模块都先引入进来,大致分析一下我们这个功能需要用到的模块:

      import os.path,time
      
    • 遍历当前目录下所有 .md 文件列表:

      这就需要使用到 Python 的文件目录操作模块 os.path ,使用 os.listdir 获取目录列表,然后通过 os.path.splitext 分割文件名称和后缀名,从而筛选合格的文件:

      # 获取指定目录指定后缀名的文件列表
      def getFileList(path,endStr):
      	'''获取指定目录下,指定后缀的文件列表'''
      	r_list = []
      	f_list = os.listdir(path)	#获取目录列表
      	for i in f_list:
      		# 分离文件名和后缀名,过滤掉工具脚本
      		file_endStr = os.path.splitext(i)[1]
      		# 判断是否是目录
      		if os.path.isdir(i):
      			f_list1 = os.listdir(path+'/'+i)
      			for j in f_list1:
      				# 过滤出指定后缀 endStr 后缀的文件
      				if os.path.splitext(j)[1] == endStr:
      					# 为了清晰目录把文件所在目录也标识出来
      					r_list.append(i+'/'+j)
      					# print j.decode("string_escape")
      		elif file_endStr == endStr:
      			r_list.append(i)
      	return r_list
      

    这里发现了一个问题,就是在 os.path.isdir(i) 在 2.7.11 的版本莫名其妙地返回 false,需要做如下修改才能正常:

     if file_endStr == '':
         i = os.path.join(path, i)   #=================〉这一行很必要
    	 # print i
    	 # 判断是否是目录
    	 if os.path.isdir(i):
    	     ...
    
    • 获取文件的创建时间:

      需要使用到 os.time 模块的功能:

      # 获取文件创建时间
      def get_FileCreateTime(filePath):
      	  t = os.path.getctime(filePath)
      	  return TimeStampToTime(t)
      
      # 把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12'''
      def TimeStampToTime(timestamp):
      	  timeStruct = time.localtime(timestamp)
      	  return time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)
      
    • 获取博客标题:

      其实就是从目录字符串中截掉后缀名,再截掉最后一个 / 之前的内容即可得到博客名称:

      # 获取目录中去掉前面路径和后缀的文件名字
      def getFileSimpleName(filePath):
          name = ''
          # 先去掉后缀
      	  name = os.path.splitext(filePath)[0]
      	  # 获取最后一个斜杠位置
      	  index = name.rfind('/')
      	  # 找不到则返回 -1
      	  if index != -1:
      	  # 截取斜杠后面到结尾内容
      	  name = name[index+1:]
      	  # print name
      	  return name
      
    • 获取文件所在的目录名称作为页签值:

      与获取博客名称思路略有相似,获取最后一个斜杠位置,截掉斜杠之后的内容,在获取一个最后一个斜杠位置,假如有则截取斜杠之后的内容即是文件所在目录的名称:

      # 获得分类文件目录名称
      def getTypeNameByPath(filePath):
      	fileTag = ''
      	# 获取最后一个斜杠位置
      	index = filePath.rfind('/')
      	# 找不到则返回 -1
      	if index != -1:
      		# 截取斜杠后面到结尾内容
      		fileTag = filePath[:index]
      		# 截掉前面部分
      		index = fileTag.rfind('/')
      		if index != -1:
      			fileTag = fileTag[index+1:]
      	# print fileTag
      	return fileTag
      
    • 向文件中插入内容:

      调用以上方法即可分别得到我们想要的信息:

      # 指定目录
      path = './'
      # 得到文件列表
      files = getFileList(path,'.md')	
      for i in files:
          print 'title: '+getFileSimpleName((i.decode("string_escape")))
          print 'date: '+get_FileCreateTime((path+i.decode("string_escape")))
          print 'tags: ['+getTypeNameByPath((i.decode("string_escape")))+']'
      

      接下来要做的就是把这些内容按照格式插入到文件中去,当然插入之前需要先检查文件中是否已经插入过类似的内容了,可以简单地通过检查开头 40 个字符串中是否包含这个字符串来判别:

    ‘’’—
    title: ‘’’

    
    关于展示分隔符 ``<!--more-->`` 插入的位置,大致逻辑是:第一个标题后面,而且刚好插入在第二个标题之前即可,而使用 Markdown 语法撰写的博客标题使用 ``#`` 来表示的,最终的插入方法如下:
    
    ```python
    # 向文件中插入指定数据
    def addHeadToFile(filePath,title,date,tags):
    	file = open(filePath,"r")
    	content = file.read()
    	index = content[:40].find('''---
    title:''')
    	# 添加
    	if index == -1:
    		print 'Undadded'
    		addContent = '''---
    title: '''+title+'''
    date: '''+date+'''
    tags: ['''+tags+''']
    categories: '''+tags+'''
    ---
    '''
    		# 检测是否插入部分显示标签
    		content = addContent + content
    		index = content.find('''<!--more--> ''')
    		if index == -1:
    			# 获取第一段的位置
    			index = content.find('''### ''')
    			if index != -1:
    				#print "first ### pos = ",index
    				# 下一个标题位置(在第二个标题之前插入即可)
    				pos = content[index:].find('''
    
    #''',1)
    				if pos != -1:
    					index += pos
    					#print "second enter pos = ",index
    					content = content[:index]+'''
    <!--more-->
    '''+content[index:]
    		file = open(filePath,"w")
    		file.write(content)
    	else:
    		#print 'file head had added'
    	# 记得要关闭文件
    	file.close()
    

    最后完整的调用过程:

    # 指定目录
    path = './'
    # 得到文件列表
    files = getFileList(path,'.md')	
    # 声明一些全局变量
    title = ''
    date = ''
    tags = ''
    for i in files:
        	title = getFileSimpleName(i.decode("string_escape"))
        	date = get_FileCreateTime(path+i.decode("string_escape"))
        	tags = getTypeNameByPath(i.decode("string_escape"))
        	print 'title: '+title
        	print 'date: '+date
        	print 'tags: ['+tags+']'
        	addHeadToFile(path+i.decode("string_escape"),title,date,tags)
    

    其他:

    如果你跟我一样出现了打印中文文件名变成诸如: “BATCH\xc5\xfa\xb4\xa6\xc0\xed\xbc\xf2\xbc\xc7.md” 这种格式的话,可以参考:Linux 下Python2.7解决list打印中文字符问题


    参考资料:


    微信公众号「何乐不为呢」,一个码农的技术笔记和唠叨。

    展开全文
  • 常用自动化测试工具

    万次阅读 多人点赞 2019-03-04 15:19:20
    Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供...

     

    1、Appium

    官网:http://appium.io

    AppUI自动化测试

         Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。

    License:免费

     

    2、Selenium

    官网:https://www.seleniumhq.org/download/

    WebUI自动化测试

    Selenium是一个用于Web应用程序测试的工具,Selenium已经成为Web自动化测试工程师的首选。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。

    License:免费

     

    3、Postman

    官网:https://www.getpostman.com

    接口测试

         Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。

    License:免费

     

    4、Soapui

    官网:https://www.soapui.org

    接口测试

    SoapUI提供了所有所需的工具来测试和完善的测试。总览标签给你一个项目的所有内容和全面的看法。只需一次点击,您可以添加任何数量的断言为验证传入的消息TestStep。使用功能强大的HTTP监视器记录,分析甚至修改客户机 - 服务器通信,因为它发生。和SoapUI临带来了更专业和先进的功能,保持遥遥领先其他测试工具。轻松创建和运行数据驱动测试。该数据源TestStep读取测试数据从任何外部来源 - Excel中,XML,JDBC,文件,等等 - 到标准SoapUI属性。

    License:免费

     

    5、Robot Framework

    官网:http://robotframework.org   

    WebUI自动化测试,接口测试,APP测试

          Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。

    Robot framework为不同的自动化测试需求提供了不同的框架。它的测试能力可以通过 Python 和 Java 测试库得到扩展。Selenium WebDriver 是 Robot Framework 中内置的流行库。

    Robot Framework 不仅仅是网页测试工具,同样可以用来做 Android 和 iOS 的自动化测试。对于关键字测试驱动熟悉的测试员可以轻松上手 Robot Framework。

    License:免费    

     

    6、QTP

    官网:https://software.microfocus.com/en-us/products/unified-functional-automated-testing/overview

    WebUI自动化测试,接口测试,APP测试

         HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。目前版本名为Unified Functional Testing,简称UFT。可以测试非常多的应用,比如接口API,Web services,桌面程序,Web系统,手机APP。

    License:商业

     

    7、Jmeter

    官网:https://jmeter.apache.org

    接口测试,性能测试

    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现;

    JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。

    使用Jmeter做接口测试需要注意一点,小心使用“用户定义变量”,Jmeter组件有优先级的,如果多个线程同时执行的时候,“用户定义变量”组件定义的变量可能会乱套。

    License:免费

     

    8、Loadrunner

    官网:https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview

    性能测试

    LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。

    License:商业

     

    9、Monkey

    App稳定性测试

         软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件,压力测试结果:崩溃crash,无响应anr。

    License:免费

     

    10、GT

    官网:http://gt.qq.com/index.html

    App性能测试

         GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。利用GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。

    License:免费

     

    11、Appscan

    官网:https://www.ibm.com/developerworks/downloads/r/appscan/

    安全测试

    IBM Security AppScan 是一个适合安全专家的 Web 应用程序和 Web 服务渗透测试解决方案,对现代 Web 应用程序和服务执行自动化的动态应用程序安全测试 (DAST) 和交互式应用程序安全测试 (IAST),支持 Web 2.0、JavaScript 和 AJAX 框架的全面的 JavaScript 执行引擎,涵盖 XML 和 JSON 基础架构的 SOAP 和 REST Web 服务测试支持 WS-Security 标准、XML 加密和 XML 签名,详细的漏洞公告和修复建议。

    License:免费

     

    12、Jenkins

    官网:https://jenkins.io

    持续集成

    自动化构建 编译,部署,任务执行,测试报告,邮件通知等。

    License:免费

    展开全文
  • Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台, Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供...

    1:Appium

    AppUI自动化测试
    Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,
    Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。

    2: Selenium

    WebUI自动化测试
    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。
    这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。
    支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。

    3: Jmeter

    接口测试,性能测试
    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现
    JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、
    网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。

    4:Postman

    接口测试
    Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,
    它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。

    5: Monkey

    稳定性测试
    软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件,
    压力测试结果:崩溃crash,无响应anr,
    基本命令:adb shell monkey 300。

    6: Robot

    WebUI 自动化测试,接口测试
    Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。

    7: Loadrunner

    性能测试
    LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。
    企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。

    展开全文
  • 自动化测试工具比较

    千次阅读 2018-03-02 11:41:41
    过去一年接触了几款自动化测试工具,在此做个简单的比较总结。 测试工具应该不是重点,重点是对被测的应用程序类型/借口的协议需要熟悉,然后根据被测项目选择合适的测试工具。 表格1:功能/性能测试工具总结: ...

    目录

    表格1:UI自动化测试工具总结:

    表格2:(接口)性能测试工具总结:

    表格3:接口测试工具总结:

    过去一年接触了几款自动化测试工具,在此做个简单的比较总结。

    测试工具应该不是重点,重点是对被测的应用程序类型/借口的协议需要熟悉,然后根据被测项目选择合适的测试工具。

    表格1:UI自动化测试工具总结:

    工具名称适用范围备注
    QTP

    1〉商业化的功能测试工具。

    2〉默认支持的应用程序类型:标准windows应用程序(Win32 API/MFC/...)、Web页面、ActiveX控件,VB应用程序;在加载额外插件的情况下,还支持:Java应用、.Net应用、...

    3〉基于对象库的自动化测试;对象说的是应用程序中的实际对象。QTP对象库中需保存对象,运行脚步时根据对象属性/对象名称来寻找对象,进而对对象进行操作;

    4〉支持VBScript编写脚本;

    脚本编辑界面不是很友好(需要借助其他的编辑器),安装完毕后占有内存较大;

    资料比较多;

    Ranorex

    1〉支持WinForm、WPF、WEB2.0、Android、...;

    2〉基于对象库(Xpath)的自动化测试;运行时根据对象属性来寻找对象,进而对对象进进行操作,对象可参数化;

    3〉支持C#、VB、Python语言编写脚本;

    安装完毕后占用的内存较小;

    资料比较少;

    Selenium

    webdriver                              

    1〉基于浏览器的开源自动化测试工具;

    2〉适用于web应用的自动化测试;

    3〉可以使用多种语言进行驱动

    selenium2是selenium与webdriver两个项目的合并。
    Appium

    1〉Appium是开源的自动化测试框架,主要用于iOS,Android以及Windows apps等移动平台的自动化测试。官网的介绍说是它实现一套适用于移动端的WebDriver协议,所以使用Appium时用的还是依赖于Selenium,和Web自动化测试的主要区别就在Driver不一样。

    2〉举一个例子,如果我们需要用Google Chrome来跑Selenium的自动化测试,那么首先需要一个ChromeDriver。如果需要跑在IE上,那么需要一个IEDriver。那么现在需要在移动端比如Android里跑Selenium,这时候你需要一个Appium就够了,它担当了Driver的角色。Appium实现了一套标准的WebDriver,只要Appium服务起来之后,你的代码只需要和Appium交互,Appium会去告诉设备该干嘛干嘛。这里提到的设备可以是iOS或者Android,甚至是Windows Phone 和Firefox OS

     

        备注:Selenium工具未实际应用过,待后续有时间再实践。

     

    表格2:(接口)性能测试工具总结:

    工具名称适用范围备注
    Loadrunner

    1〉商业化的性能测试工具。

    2〉被测接口的网络协议支持的话就可用来进行接口的性能测试;支持的常用协议有:Web(Http/HTML)、Soket、.NET、Web Service、数据库协议(ODBC/Oracle/SQLServer/...);

    3〉脚本语言支持C、Java、VB、VBS,默认生成的脚本语言是C;

     

    Apache Jmeter                         

    1〉来自官网的说明:

    the Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions

    2〉接口的性能测试工具,支持的应用/服务/协议:Web(Http)、FTP、JDBC、JavaObjects、......

    开源软件,Java源码
    HttpRunner

    1〉HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求

    2〉开源的Python源码,地址 

    开源软件,Python源码

     

    表格3:接口测试工具总结:

    工具名称作用备注
    Charles                               

    1〉来自官网的说明:

    Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

    2〉可以用作http协议的抓包工具;

    非免费的。网上有破解版本可以用。                        
    Fiddler

    1〉来自官网的说明:

    web debugging proxy for any browser、plaltform or system。

    2〉可以用来抓取http协议的数据包

    免费的
    Postman1〉网页调试、发送http请求的接口测试工具免费的

     

    展开全文
  • UI自动化轻松实现微信聊天记录提取、群聊轰炸机和朋友圈爬取 ????当前微信聊天窗口聊天记录提取???? ????自动发送微信消息???? ????朋友圈爬取????
  • python自动化工具之pywinauto(一)

    万次阅读 多人点赞 2017-10-07 16:14:19
    python自动化工具之pywinauto(一)python自动化工具之pywinauto一 pywinauto使用 一 判断程序的backend 二确定自动化入口点 三连接到进程 四 选择菜单项pywinauto使用首先,导入这个模块from pywinauto.application ...
  • 前端自动化构建工具介绍

    万次阅读 2019-05-15 16:37:07
    前端自动化构建工具有: Bower,Gulp,Grunt,node,yeoman。。。 自动化构建是作为前端工程化中重要的部分,承担着若干需要解决的环节。包括流程管理、版本管理、资源管理、组件化、脚手架工具等。 流程管理 完整的...
  • 几款Android 应用自动化测试工具

    万次阅读 多人点赞 2018-01-09 10:20:47
    本文介绍几款流行的 Android应用自动化测试工具。 Monkey测试:随机测试,压力测试,运行在模拟器或实际设备中。 MonkeyRunner测试:操作简单,可录制测试脚本,可视化操作,主要生成坐标的自动化操作,移植性不...
  • Selenium 4.0-最新的测试自动化工具

    万次阅读 2020-08-24 10:08:00
    Selenium是业界领先的测试自动化工具之一,可以最大限度地实现测试自动化的目的。第一个Selenium工具于2004年作为Selenium Core推出。该Selenium测试自动化...
  • 自动化测试】自动化测试框架与工具

    千次阅读 多人点赞 2021-05-06 21:01:01
    文章目录1)什么是自动化测试框架?...1.4 判断是否需要自动化测试适用项目:2)自动化测试框架的类型2.1 自动化测试框架的分类2.1.1 基于模块的测试框架:2.1.2 库架构测试框架2.1.3 数据驱动测试框架2.1.4 关键字驱动
  • “ 介绍有关自动测试工具-uirecorder环境搭建” 01—目录 1.介绍 2.注意事项 3.介绍 4.环境搭建 5.重点提及一下nodejs的安装。 6.创建一个工程:录制web页面 7.扩展:录制app   02—注意事项 1.文件夹...
  • 常见功能自动化测试工具汇总

    万次阅读 2012-01-17 21:45:36
    最近因要写一些关于自动化测试及自动化框架方面的东西,所以需要学习和补充很多自动化工具和框架方面的知识,以期能获取第一手资料来完成自己的写作所需。因为之前常见的和使用的自动化工具只有QTP、selenuim,其它...
  • 六款Android 应用的自动化测试工具

    万次阅读 2017-06-02 14:43:31
    一些自动化工具是几年前出的,一些才在市场上出来。每款工具有一定的特点,都是独特的。   在众多的可选择的自动化工具中,要选到项目合适的工具是比较困难的。问题是,几乎没有任何现有的工具完全
  • 初识 Katalon Studio 自动化测试工具

    万次阅读 2018-03-12 16:38:37
    1.Selenium/Appium 自动化工具概述 实施自动化测试之前,我们总会调研哪些工具易用,免费,容易和其他工具或者框架集成。做 Web 自动化测试我们经常选择Selenium,因为它开源免费,支持不同的开发语言,还有录制...
  • JMeter自动化测试工具

    千次阅读 2018-09-12 19:45:41
    在进行网页或应用程序...但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具 Apache JMeter - Apache JMeter™ Apache J...
  • UI自动化测试工具Airtest

    万次阅读 2018-08-09 16:57:35
    Airtest是网易出的基于图像识别和Poco控件识别的一款UI自动化测试工具。 两个关键点: 1、基于图像识别 Airtest可以通过屏幕截图的方式来获取我们想要操作的区域。例如对一些按钮进行测试时,我们可以不再写复杂...
  • 常见的自动化测试工具汇总

    千次阅读 2019-08-13 10:32:09
    在自动化测试领域,自动化工具的核心地位毋庸置疑。这篇博客总结了最顶尖的自动化测试工具和框架,这些工具和框架可以帮助组织更好地定位自己,跟上软件测试的趋势。这份清单包含了开源和商业的自动化测试解决方案。...
  • 刚刚入手自动化,这里自己记录一下自动化工具的使用,备忘一下。 AutoRunner的简介: AutoRunner是自动化的功能测试工具,功能测试的目标是根据 GUI 的界面或者报表来检查软件的实际功能是否和需求定义的功能相...
  • 在源代码的静态安全审计中,使用自动化工具代替人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。在学习PHP源代码审计的过程中,本人搜集使用了多款自动化...
  • Android自动化测试工具——Monkey

    万次阅读 2011-08-31 09:45:50
    前言:最近开始研究Android自动化测试方法,整理了一些工具、方法和框架,其中包括android测试框架,CTS、Monkey、Monkeyrunner、benchmark,以及其它test tool等等。 一、 什么是MonkeyMonkey是Android中的一个...
  • 首先还是先了解下android的自动化测试工具吧, 以下是从网上摘要的, 因为我将要使用。 一、什么是monkeyrunner monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Androi
  • 自动化测试工具的原理

    千次阅读 2013-01-07 15:43:04
    自动化测试工具的原理 3.3 自动化测试工具的原理 测试工具的优势在于可部分地替代人工...自动化测试工具把测试用例用自动的方式执行,例如,自动地产生数据,自动地打开应用程序,自动地查找控件,自动地输入数
  • 不容错过的十款自动化测试工具,都整理好了,快来看看
  • 五款Android 应用的自动化测试工具

    万次阅读 2017-12-20 14:08:32
    一些自动化工具是几年前出的,一些才在市场上出来。每款工具有一定的特点,都是独特的。   在众多的可选择的自动化工具中,要选到项目合适的工具是比较困难的。问题是,几乎没有任何现有的工具完全
  • 前言XDT(XSS Detection Tool)是一个基于Python的XSS自动化检测工具。这是本人本科毕业设计时实现的一个课题。关于Python 作为最受欢迎的程序设计语言之一,其语法简洁,代码执行快速(不需编译),具有丰富和强大...
  • 随着软件发展到不同的阶段对自动化会有不同的测试需求,因此也产生了多种测试类型,然而万变不离其宗,一切皆可自动化
  • 信息模型就是描述了特定领域的信息类型以及相互关系,是对某个特定领域的抽象,也是开发特定领域软件工具的基础。下图是 UCD 所包含的应用部署自动化管理信息模型。 图 3. IBM UCD 信息模型 本文将以 ...
  • 光纤交换机接口功率监控需求...根据如上场景,本人设计并实施了一个小小的项目:通过采集程序定时采集交换机光纤接口收、发功率,将采集的数据结构,写入postgresql数据库,再通过grafana对采集的数据进行图形展示

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 699,386
精华内容 279,754
关键字:

自动化工具的不同类型