360面试之自动化篇

自动化测试篇

1.列出你所知道的自动测试工具和框架,选一个你所熟悉的,简述用它进行自动化测试的步骤

参考答案:

常见的自动化测试工具和框架包括Selenium、Appium、JUnit、TestNG、Cucumber、Robot Framework等。我选择Selenium作为我熟悉的工具进行简述。

使用Selenium进行自动化测试的步骤如下:

  1. 安装和配置:首先,需要安装Selenium WebDriver,并配置相应的浏览器驱动,如ChromeDriver、GeckoDriver等。

  2. 编写测试脚本:使用编程语言(如Java、Python等)编写自动化测试脚本,通过Selenium提供的API来操作浏览器。可以使用基本的定位元素和操作元素的方法,如findElement、sendKeys、click等,以及其他高级操作,如处理弹窗、多窗口切换等。

  3. 设置测试环境:在测试脚本中设置测试环境,如打开浏览器、输入URL等。

  4. 编写断言:在测试脚本中添加断言,验证测试结果是否符合预期。可以使用Selenium提供的断言方法,如assertEquals、assertTrue等。

  5. 运行测试脚本:使用测试框架(如JUnit、TestNG)运行测试脚本,生成测试报告。可以通过命令行或集成开发环境来执行测试。

  6. 分析测试结果:分析测试报告,查看测试结果是否通过,并定位测试失败的原因。

  7. 维护和更新:根据需求的变化,对测试脚本进行维护和更新,保持自动化测试的可靠性和稳定性。

总结来说,使用Selenium进行自动化测试的步骤包括安装和配置、编写测试脚本、设置测试环境、编写断言、运行测试脚本、分析测试结果以及维护和更新。这些步骤可以帮助开发人员和测试人员快速构建和执行自动化测试。

2.什么样的产品或模块适合实施自动化测试?

参考答案:

自动化测试适用于各种类型的软件产品和模块,包括:

  1. Web应用程序:自动化测试可以用于验证Web应用程序的功能、界面和性能。

  2. 移动应用程序:自动化测试可以用于验证移动应用程序的功能、界面和兼容性,支持iOS和Android平台。

  3. 桌面应用程序:自动化测试可以用于验证桌面应用程序的功能和性能,例如Windows桌面应用程序。

  4. API和微服务:自动化测试可以用于验证API和微服务的功能和性能。

  5. 数据库:自动化测试可以用于验证数据库的功能和性能,例如数据读取和写入操作。

  6. 安全性测试:自动化测试可以用于验证系统的安全性,例如检查SQL注入或跨站脚本攻击。

  7. 性能测试:自动化测试可以用于验证系统的性能和负载承受能力。

总的来说,任何需要反复测试和验证的软件产品或模块都适合实施自动化测试。自动化测试可以提高测试效率、减少人为错误,并快速捕捉和修复问题。

QTP篇

1.GetROProperty,GetTOProperty,GetTOProperties 3个函数的区别

参考答案:

GetROProperty函数用于获取对象的运行时属性值,即对象在当前时刻的属性值。这些属性值通常表示对象的状态、属性、位置等信息。

GetTOProperty函数用于获取测试对象的测试对象属性值,即对象在测试脚本中设置的属性值。这些属性值通常表示对象在测试脚本中设定的特定状态或属性。

GetTOProperties函数用于获取测试对象的所有测试对象属性值。这个函数返回一个关联数组,其中包含了对象的所有测试对象属性及其对应的值。

这三个函数的区别在于获取的属性范围不同,GetROProperty获取的是运行时属性值,GetTOProperty获取的是测试对象属性值,GetTOProperties获取的是所有测试对象属性的集合。

2.什么是检查点,检查点的作用是什么,请列举出你所知道的检查点类型

参考答案:

检查点是软件测试过程中的一种技术,用于在测试执行过程中检测系统的状态是否符合预期,以便确定测试是否通过或失败。它通常用于验证软件功能、数据正确性和性能等方面。

检查点的作用包括:

  1. 验证功能:通过检查点可以验证系统是否正确执行了特定的功能,例如确认一个按钮是否被正确激活。
  2. 验证数据:可以检查系统是否正确地处理和显示数据,例如确认表格中的数据是否正确加载。
  3. 验证界面:可以检查系统的用户界面是否符合预期,例如确认页面布局是否正确。
  4. 验证性能:可以检查系统是否能够在预期的时间范围内完成某个操作,例如确认数据库查询的响应时间是否符合要求。

以下是一些常见的检查点类型:

  1. 文本检查点:用于验证文本是否正确显示,例如验证页面标题或错误提示信息是否正确。
  2. 图像检查点:用于验证图像是否正确显示,例如确认图标、按钮或图片是否正确加载。
  3. 表格检查点:用于验证表格中的数据是否正确加载,例如确认表格中的数据和预期的数据是否一致。
  4. 链接检查点:用于验证链接是否正确指向预期的页面,例如确认导航菜单中的链接是否导航到正确的页面。
  5. 数据库检查点:用于验证数据库中的数据是否正确,例如确认数据库中的记录是否与预期一致。
  6. 响应时间检查点:用于验证系统的响应时间是否在可接受范围内,例如确认一个功能的响应时间是否满足性能要求。

这只是一些常见的检查点类型,实际上还有许多其他类型的检查点,可以根据具体测试需求选择适合的检查点类型。

3.在VBScript中,正则表达式通常被应用到什么地方,并且写出一个验证有效Email地址的正则表达式。

参考答案:

在VBScript中,正则表达式通常被用于字符串匹配和验证。正则表达式可以用来检查字符串是否符合特定的模式或格式,并对其进行处理。常见的应用包括验证邮箱地址、电话号码、密码强度等。

以下是一个验证有效Email地址的正则表达式的示例:

vbscript 复制代码
Function IsValidEmail(email)
    Dim regex
    Set regex = New RegExp
    
    ' 设定Email地址的模式
    regex.Pattern = "^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$"
    
    ' 忽略大小写
    regex.IgnoreCase = True
    
    ' 执行匹配
    IsValidEmail = regex.Test(email)
End Function

这个正则表达式验证了以下条件:

  • 邮箱用户名可以包含字母、数字、下划线和连字符(-)
  • 邮箱用户名中的点(.)可以重复出现,但不能连续出现
  • 邮箱域名由字母、数字和连字符构成
  • 邮箱域名中的点(.)可以重复出现,但不能连续出现
  • 邮箱域名的最后一部分必须是2到7个字母(例如.com、.org、.edu等)

使用示例:

vbscript 复制代码
Dim email
email = "test@example.com"
If IsValidEmail(email) Then
    MsgBox "邮箱地址有效"
Else
    MsgBox "邮箱地址无效"
End If

以上代码会弹出一个消息框,告诉你邮箱地址是否有效。

4.用VBScript删除E盘下的test文件夹

参考答案:

VBScript中可以使用FileSystemObject来操作文件和文件夹。下面是一个删除E盘下test文件夹的示例代码:

vbscript 复制代码
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim folderPath
folderPath = "E:\test"

If fso.FolderExists(folderPath) Then
    fso.DeleteFolder folderPath, True
    MsgBox "成功删除文件夹"
Else
    MsgBox "文件夹不存在"
End If

Set fso = Nothing

请注意,在删除文件夹时,第二个参数为True表示删除包括子文件夹和文件在内的所有内容。如果想仅删除文件夹本身,可以将第二个参数设置为False。

另外,在使用VBScript时,请确保以管理员身份运行脚本,否则可能没有权限删除文件夹。

5.写一小段QTP脚本,需要将global sheet中testvalue列第2行到第5行的数据读取出,读取成功后打印这些数据,请用testinput(testvalue)函数

参考答案:

' 利用QTP脚本,读取global sheet中testvalue列第2行到第5行的数据并打印 ' 使用testinput(testvalue)函数

' 创建测试对象 Dim globalSheet, testData Set globalSheet = DataTable.GlobalSheet Set testData = globalSheet.GetParameter("testvalue")

' 定义函数testinput Function testinput(value) MsgBox value End Function

' 读取数据 testinput(testData.Value(2)) testinput(testData.Value(3)) testinput(testData.Value(4)) testinput(testData.Value(5))

selenium篇

1.webdriver与selenium的区别

参考答案:

WebDriver和Selenium是两个不同的工具,但它们之间也有一些相似之处。

WebDriver是一个用于自动化测试的工具,它提供了一组API,用于控制浏览器执行各种操作。WebDriver可以与多种浏览器进行交互,并提供了一些基本的操作方法,如点击、输入文本、获取元素等。

Selenium是一个自动化测试框架,它包含了一系列工具和库,用于执行自动化测试任务。Selenium WebDriver是Selenium的一个子项目,它使用WebDriver API来控制浏览器,并执行自动化测试任务。

区别:

  • WebDriver是一个API,而Selenium是一个完整的自动化测试框架。
  • WebDriver可以与多种浏览器进行交互,而Selenium主要与浏览器进行交互。
  • WebDriver提供了一些基本的操作方法,如点击、输入文本、获取元素等,而Selenium提供了更多的功能,如测试套件管理、并行执行等。
  • WebDriver可以使用多种编程语言来编写测试脚本,如Java、Python、C#等,而Selenium主要使用Java编写测试脚本。
  • WebDriver可以直接控制浏览器,而Selenium需要通过WebDriver来控制浏览器。

总的来说,WebDriver是Selenium的一个核心组成部分,用于控制浏览器执行自动化测试任务。Selenium是一个完整的自动化测试框架,它包含了WebDriver以及其他一些工具和库,用于执行自动化测试任务。

2.断言(assert)和验证(verify)的区别,分别何时使用

参考答案:

断言(assert)和验证(verify)都是用来检查程序中的条件是否满足的方法,但它们的使用场景和目的略有不同。

断言(assert)通常用于程序开发和测试阶段,用于检查程序中的条件是否为真。它可以在代码中插入断言语句来声明某个条件应该为真,如果条件不为真,断言会引发一个异常并终止程序的执行。断言的目的是在开发和测试阶段尽早发现程序中的错误和问题。

验证(verify)通常用于实际运行环境中,用于检查程序中的条件是否满足,并根据条件的结果采取相应的操作。验证可以是简单的if语句,也可以是更复杂的逻辑判断。验证的目的是在程序运行时动态地检查条件,并根据条件的结果进行相应的处理。

总结起来,断言(assert)是一种在开发和测试阶段用于检查程序中的条件是否为真的方法,它旨在尽早发现错误和问题。验证(verify)则是一种在实际运行环境中动态地检查条件,并根据条件的结果进行相应操作的方法。

3.selenium如何测试ajax功能,简述即可

参考答案:

Selenium可以通过以下方式来测试Ajax功能:

  1. 等待Ajax请求完成:Selenium提供了WebDriverWait类和ExpectedConditions类,可以使用WebDriverWaituntil方法结合ExpectedConditions中的presence_of_element_locatedvisibility_of_element_located等条件,来等待页面上的某个元素出现或可见,从而判断Ajax请求是否完成。

  2. 模拟Ajax请求:Selenium提供了JavascriptExecutor接口,可以使用execute_script方法来执行JavaScript代码。通过执行一段JavaScript代码来模拟Ajax请求,然后再通过其他Selenium操作来验证请求的结果,从而测试Ajax功能。

  3. 监听Ajax请求:可以使用Selenium的EventFiringWebDriver类来注册一个监听器,通过监听beforeNavigateTobeforeClickOnafterClickOn等事件,可以捕获到页面上的Ajax请求。然后可以通过其他Selenium操作来验证请求的结果,从而测试Ajax功能。

需要注意的是,对于Ajax请求的测试,需要结合页面的具体实现和使用的技术栈来选择合适的测试方法。同时还需要注意页面加载的超时时间,避免由于Ajax请求过长而导致测试超时。

自动化实战篇

将如下的测试场景用最熟悉的自动化工具实现,写出具体的实施步骤和脚本内容,测试数据自己准备

测试内容:上传功能

测试目的:上传功能可支持一次上传999个文件

测试步骤:1.准备数据 2.上传文件 3.等待上传完成 4.判断上传完成及成功预期结果:上传成功

说明:每个文件内容需不一样,文件名无要求

参考答案:

以Selenium WebDriver为例,以下是一个使用Python编写的自动化脚本示例:

  1. 准备数据:
  • 准备999个文件,每个文件内容不一样(可以使用随机文本生成工具生成)。
  1. 上传文件:
  • 打开网页并进入上传页面。

  • 使用循环遍历的方式,逐个上传文件。

  • 使用WebDriver定位上传按钮元素,并发送文件路径。

示例代码:

python 复制代码
  from selenium import webdriver
  import os

  # 创建WebDriver对象
  driver = webdriver.Chrome()

  # 打开网页并进入上传页面
  driver.get("http://example.com/upload")

  # 循环遍历上传文件
  for i in range(999):
      # 获取文件路径
      file_path = os.path.join(os.getcwd(), f"file{i}.txt")
      
      # 定位上传按钮元素,并发送文件路径
      upload_button = driver.find_element_by_css_selector("input[type=file]")
      upload_button.send_keys(file_path)
  1. 等待上传完成:
  • 在上传文件后,根据页面上的元素状态判断是否上传完成。

  • 可以使用WebDriver内置的等待方法来实现,例如`WebDriverWait`。

  1. 判断上传完成及成功:
  • 检查页面元素或者页面提示信息,判断上传是否成功。

  • 可以使用WebDriver提供的断言方法来实现,例如`assert`。

示例代码:

python 复制代码
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待上传完成
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.upload-status.completed")))

# 判断上传完成及成功
assert "上传成功" in driver.page_source
相关推荐
野蛮的大西瓜6 小时前
开源呼叫中心中,如何将ASR与IVR菜单结合,实现动态的IVR交互
人工智能·机器人·自动化·音视频·信息与通信
爱学测试的李木子13 小时前
从0到1搭建 Android 自动化 python+appium 环境
android·软件测试·python·测试工具·自动化
努力学习的小廉16 小时前
深入了解Linux —— make和makefile自动化构建工具
linux·服务器·自动化
小张认为的测试16 小时前
Linux性能监控命令_nmon 安装与使用以及生成分析Excel图表
linux·服务器·测试工具·自动化·php·excel·压力测试
深圳安锐科技有限公司19 小时前
首次接触结构安全自动化监测系统,价格高吗?后期维护?
运维·自动化
TGB-Earnest20 小时前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
小白学大数据1 天前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
weixin_419349791 天前
selenium 报错 invalid argument: invalid locator
selenium·测试工具
程序猿000001号1 天前
Selenium 深度解析:自动化浏览器操作的利器
selenium·测试工具·自动化
yaosheng_VALVE1 天前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节