# 以禅道为例:

一、创建一个类,类里面写一个登录方法:

import requests

class LoginZentao():

def __init__(self, s): # 初始化

self.s = s # 定义一个全局的s

def login(self):

r = self.s.post() # self.s调用全局的s

pass

if __name__=='__main__':

s = requests.session()

zentao = LoginZentao(s) # 类实例化为对象,传入参数s

zentao.login() # 调用zentao里面的login() 方法

二、上传图片接口:

# 文件上传:content-Type: multipart/form-data类型

import requests

class SendFile():

def __init__(self, s):

self.s = s

def sendImg(self, jpgpath, jpgname='1.jpg', jpgtype='image/jpeg'):

# 登录并更新cookies

f = open('1.jpg', 'rb') # 绝对路径

url2 = ''

body = {

'localurl': (None, jpgname),

'imgFile': ('1.jpg', open(jpgpath, 'rb'), jpgtype)

# 1、绝对路径 2、open('1.jpg', 'rb') 3、content-type的值

}

# 上传图片的时候,不data和json,用files

r = self.s.post(url2, files=body) # 1、调用全局的s,用self.s 2、files

print(r.text)

# 上传到服务器,每传一次地址都不一样

# 解决抛异常

try:

jpg_url = r.json()['url'] # (相对路径)

print(jpg_url)

return jpg_url

except Exception as msg: # 返回报错信息

print('图片上传失败,原因:%s'%msg) # 打印报错信息

# raise # 主动抛原始异常

# raise ··· # 抛出异常内容为:“···”

return ''

if __name__=='__main__':

s = requests.session()

from test.test_009_003_zentaologin import LoginZentao

# 调登录方法

login = LoginZentao(s) # 实例化类LoginZentao为对象

login.login()

# 上传文件

send = SendFile(s) # 把类sendfile()实例化为对象

send.sendImg() # 调用sendfile()里面的sendImg方法

三、编写、执行测试用例:

import unittest

import requests

from test.test_009_003_zentaologin import LoginZentao # 从文件夹.文件名导入LoginZentao类

from test.test_009_002_sendfile import SendFile # 从文件夹.文件名导入sendfile类

import os

# 获取文件路径

parpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) # 定位当前文件夹

jpgpath = os.path.join(parpath, 'testdata', '1.jpg') # “testdata”:存放文件的文件夹名,“1.jpg”:文件名

class TestSendFile(unittest.TestCase):

@classmethod

def setUpClass(cls):

cls.s = requests.session()

# 实例化调用的类

cls.login = LoginZentao(cls.s ) # 实例化类LoginZentao为对象

cls.send = SendFile(cls.s) # 把类sendfile()实例化为对象

def test_01(self):

# 上传文件:第一步,登录

self.login.login()

# 第二步,传文件

result = self.send.sendImg(jpgpath)

# 第三步:断言:返回的结果里面包含'.jpg'

self.assertIn('.jpg', result)

# # 调登录方法

# login = LoginZentao(s) # 实例化类LoginZentao为对象

# login.login()

# # 上传文件

# send = SendFile(s) # 把类sendfile()实例化为对象

# send.sendImg() # 调用sendfile()里面的sendImg方法

python自动化上传文件_python接口自动化测试二十三:文件上传相关推荐

  1. python 接口测试 如何写配置文件_python接口自动化测试二十九:yaml配置文件的写和读...

    # 先安装ruamel.yaml模块 写入配置文件: import os # 先安装ruamel.yaml模块 from ruamel import yaml # 将字典写入到yaml dict = ...

  2. python 接口测试 如何写配置文件_python接口自动化测试 - configparser配置文件解析器详细使用...

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  3. python接口自动化测试代码_python接口自动化测试二:python代码实现接口测试

    url = '接口地址' r = requests.get(url) #发送get请求 print(r.status_code) #打印状态码,若有重定向,返回的是重定向之后的代码 print(r.h ...

  4. python写接口函数_python接口自动化测试二十:函数写接口测试

    # coding:utf-8 import requests import re from bs4 import BeautifulSoup # s = requests.session() # 全局 ...

  5. python接口自动化测试二十四:上传多个附件,参数化

    python接口自动化测试二十四:上传多个附件,参数化 # 添加多个附件参数化files = [("1.png", "1.png") ("2.png& ...

  6. endnote如何导入txt文件_python如何处理txt及excel文件

    txt文件读取 首先我们需要新建一个txt文件,在里面可以输入一些内容: 我们可以看到上面在当前路径下新建了一个txt文本,并在里面输入了一些内容,那么我们应该如何读取里面的内容呢? f = open ...

  7. python做接口自动化测试仪器经销商_Python接口自动化测试的实现

    接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当 ...

  8. python 接口自动化_Python 接口自动化测试

    1. 接口基础知识 1.1 接口分类 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口. (1) webservice接口:走soap协议通过http传输,请求报文和返回报文都是xml格 ...

  9. python 数据驱动接口自动化框架_python接口自动化测试 - 数据驱动DDT模块的简单使用...

    DDT简单介绍 名称:Data-Driven Tests,数据驱动测试 作用:由外部数据集合来驱动测试用例的执行 核心的思想:数据和测试代码分离 应用场景:一组外部数据来执行相同的操作 优点:当测试数 ...

最新文章

  1. BAT七年经验,却抵不过外企面试的两道算法题?
  2. java关键字 面试_java面试 关键字
  3. Windows 10如何使用文件历史记录备份个人文件
  4. 程承熊LEE微购店的买家秀
  5. MySQL数据库优化技巧大全
  6. 话里话外:流程图绘制初级:六大常见错误
  7. pytorch学习入门 (二) Variable(变量)
  8. 02. Creating a Web Forms User Interface
  9. c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)
  10. 大数据中存在哪些误解
  11. 疯狂Java讲义(十一)---- 初始化块
  12. PMP考试有哪些技巧?
  13. 开源BI工具superset的汉化
  14. 等值面抽取技术(Iso-surfaces Extraction Technique)
  15. 窗口函数查询优化案例
  16. 2021年中国养老保险参保人数、基金收入、基金支出及未来发展趋势分析[图]
  17. php gbk转拼音
  18. 学5G网络优化,就业前景好?薪资高?
  19. 面试题之——乐观锁和悲观锁区别
  20. 常用的服务器响应的状态码

热门文章

  1. Java - “JUC”原子类
  2. 转- Oracle Audit 功能的使用和说明
  3. 【VS开发】使用CTabView分割多页卡窗口
  4. Spring自定义属性编辑器及原理解释.md
  5. Impala使用RPM安装过程
  6. javscript 创建类的三种方法【转】
  7. Android音视频从入门到提高---任务列表
  8. 设备驱动模型与sysfs
  9. ckati与ninja构建demo
  10. C语言之避免编译警告:unused用法(七)