自动化测试】自动化测试yml文件怎么实现上传本地图片进行接口测试

2021-03-05 15:50发布

4条回答
studentaaa
2楼 · 2021-03-05 20:34

一、概述

【测试地址】:https://pan.baidu.com

【测试工具】selenium、requests

【脚本语言】Python

【运行环境】Windows

百度网盘作为文件存储及分享的平台,核心功能大部分是对文件的操作,如果要对它进行自动化测试,优先覆盖的就是上传、分享、复制功能

测试方案的大致结构如下:

              图 1-1 系统流程图

二、上传测试用例

以文件上传功能为例,测试用例描述如下:

  预置条件: 生成指定数量和大小的测试文件(txt、csv等)

  操作步骤:1、用户登录

       2、遍历生成的文件所在的文件夹,得到所有的文件路径

       3、通过给FileUpload对象循环发送文件路径完成上传操作

  预期结果:所有文件上传成功,查询文件信息显示正确

三、每个步骤的具体实现

1、生成指定数量和大小的测试文件:

  以txt为例,其他文件(csv、word、pdf、jpg等)生成方式类似,可以网上找相关的方法和第三方库

 

复制代码

 1 # -*- recoding:utf-8 -*- 2 import os 3 import time 4  5 PATH = "D:/test_data/" 6  7  8 def create_txt(path=PATH, file_num=1, file_size=8): 9     """10     :param path: 测试文件的存放路径11     :param file_num: 需要生成的数量12     :param file_size: 每个文件的大小,以KB为单位13     """14     if not os.path.exists(path):15         os.mkdir(path)16     for i in range(file_num):17         file_name = "test_txt_"+str(i)+".txt"18         data = "test_t"+str(time.localtime())19         with open(os.path.join(path, file_name), 'w') as f_obj:20             for j in range(8*file_size):21                 f_obj.write(data)22         print "create file: test_txt_(0-%d).txt in path %s success, file size: %sKB" % (file_num, path, file_size)23 24 25 if __name__ == "__main__":26     # 生成包含不同文件大小的文件夹27     for i in range(10):28         path = "D:/test_data/" + str(i)29         create_txt(path=path, file_num=i, file_size=5*1024*i)

复制代码

芒果
3楼 · 2021-03-06 10:15

在接口测试中,经常会涉及到文件上传,文件上传一般包含的文件是图片,视频以及如csv,excel,记事本等文件,它的请求头中Content-Type对应的value值是multipart/form-data,这里依据实际的案例来说明文件上传的具体案例。这里以互联网产品人人网为案例,人人网上传成功后,在个人的主页,上传图片,见上传图片的请求参数如下图所示:

见图片上传请求头的信息如下图所示:

在上传文件的请求参数中,其它参数都比较好处理,文件的这部分,必须要指定文件的路径,文件的Content-Type类型,其实可以在Raw中可以看到,见如下图所示:

那么文件部分的请求参数具体就为:

files = {"file":("wx.jpg", open("c:/wx.jpg", "rb"), "image/jpeg",{})}

这地方特别需要强调的是file其实就是请求参数中的file,必须与请求参数中的参数名称一一对应,在请求头中cookie比较很好处理,直接在登录成功后,获取到r.cookies并且把该内容返回。那么文件上传的完整业务流是先登录系统,登录成功后再进行上传文件


在做Python UI自动化测试时遇到这种情况,我们可以借助一个工具autoIT来实现上传图片或者是文件;

一、具体操作步骤如下:

①、首先下载安装autoIT(自行百度下载即可);

其中:

AutoIt Windows Info 用于识别Windows控件信息

Compile Script to.exe 用于将autoIT生成 exe 执行文件

Run Script 用于执行autoIT脚本

SciTE Script Editor 用于编写autoIT脚本

②、以我做过的项目为例:

点击上传按钮之后,操作界面如下:

③、打开AutoIt Windows Info 工具,点击Finder Tool下小风扇形状图标,按住鼠标左键拖动到需要识别的控件上。

④、打开SciTE Script Editor编辑器,编写脚本。

SciTE Script Editor编辑器如下图:

代码如下:

ControlFocus(“文件上传”, “”,“Edit1”)

WinWait("[CLASS:#32770]","",20)

ControlSetText(“文件上传”, “”, “Edit1”,“D:\certify_android_v1.0.0.apk”)

Sleep(3000)

ControlClick(“文件上传”, “”,“Button1”);

代码第三行,D:\certify_android_v1.0.0.apk可以改成图片路径;

⑤、将脚本保存为uploadFile.au3,然后保持上传文件界面处于打开状态,再通过通过Run Script 工具将uploadFile.au3打开运行;

⑥、打开Compile Script to.exe工具,将upload.au3生成为exe可执行文件;

⑦、调用upload.exe部分代码实现如下:

import os

self.driver.find_element(By.XPATH,"文件上传").click() # 定位点击上传按钮      

os.system('D:upload.exe')# 执行upload.exe文件


小小123
5楼 · 2021-03-09 09:10

一、概述

【测试地址】:https://pan.baidu.com

【测试工具】selenium、requests

【脚本语言】Python

【运行环境】Windows

百度网盘作为文件存储及分享的平台,核心功能大部分是对文件的操作,如果要对它进行自动化测试,优先覆盖的就是上传、分享、复制功能

测试方案的大致结构如下:


相关问题推荐

  • 回答 6

    1.分析测试需求测试需求其实就是测试目标,也可以看作是自动化测试的功能点。自动化测试是做不到100%盖率的,只有尽可能提高测试覆盖率。条测试需求需要设计多个自动化测试用例,通过测试需求分析判定软件自动化测试要做到什么程度。一般情况下,自动化测试优...

  • 回答 7

    第一,需求稳定,不会频繁变更第二,研发和维护周期长,需要频繁执行回归测试第三,需要在多种平台上重复运行相同测试的场景。第四,某些测试项目通过手工测试无法实现,或者手工成本太高。第五,被测软件的开发较为规范,能够保证系统的可测试性。另外,某些...

  • 回答 14

    自动化测试对于软件测试工程师来说十分重要。是软件测试人员必备技能。自动化测试框架是为自动化测试脚本提供执行环境的脚手架。框架为用户提供了各种优势,帮助他们有效地开发、执行和报告自动化测试脚本。它更像是一个专门为自动化组织的测试而创建的系统。...

  • 回答 7

    自动化测试的成本高,效果差,是一个相对的,而针对某些具体项目,是必须要接入自动化测试的。首先说一些什么时候会需要自动化测试首先咱们讨论这个问题之前要带着一个疑问:决定要不要做自动化测试的因素有哪些?应该说时间才是一个衡量比重比较大的因素。假...

  • 回答 11
    已采纳

    Serenity:国内使用的比例貌似不是很高,所以首先被我pass掉了。       Gauge:这是一个较新的测试框架,还在开发中,不是很成熟,所以也不太利于我的学习使用。       Galen Framework:这个框架就像我图中写的一样,主要关注于用户体验设计,也就是...

  • 回答 7

    1

  • 回答 3
    已采纳

    1. Web自动化测试工具:selenium、QTP。2. 性能自动化测试工具:loadrunner、jmeter。3. 接口自动化测试工具:SoapUI、postman。4. 手机自动化测试工具:robotium、appium。

  • 回答 5

    selenium

  • 回答 2
    已采纳

    看看这个思维导图能帮助到你吗

  • 回答 4

    早期的开关量控制装置就是继电器逻辑控制,后来有电子技术了,开关量控制装置开始采用电子技术模仿继电逻辑,比较典型的就是比较典型的就是可编程序控制器(PLC),此外还有各种开关电路组成的控制器、以单片机为核心器件的控制器等,很多,其基本原理都是源...

  • 回答 5

    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。...

  • 回答 8

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更...

  • 回答 3

    一、Jmeter关联的方式:Jmeter中关联可以在需要获取数据的请求上 右键–>后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联为什么要进行关联:...

  • 回答 5

    ①仔细阅读 接口说明/设计文档。将每个接口当成被测功能点来理解。接口也有功能、性能、安全等测试。②设计接口测试方案,比如确定要使用的接口测试工具。③设计接口测试用例(和功能测试设计用例的方法一样,运用等价类、边界值、正交试验法等黑盒测试方法)。...

  • 回答 9
    已采纳

    1、Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。2、jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比load...

  • 回答 2

    1.首先需要开发提供给我们接口文档,样子如下。需要指出 接口的类型,这里是POST。还需要指出接口的地址,这里就是黑色框中的URL地址。2. 需要下载一个 postman,我的是windows 7 64bit,可以去官网下载一个最新版本。...

没有解决我的问题,去提问