#encoding=utf-8
import requests
import json
import os
import hashlib
import pickle
from conf import *

static_data = {}
def send_request(interface,value):       #将请求封装成函数send_request
r = requests.post(interface, data= value)
return r

def get_response_info(response_obj):      #将响应封装成函数get_response_info
print ("-----------------------------接口响应-------------------------")
print (response_obj.status_code)
print (response_obj.text)
print (type(response_obj.json()))
print (str(response_obj.json()))
print (response_obj.url)

def assert_response(response_obj,assert_word):        #将断言封装成函数assert_response
assert assert_word in str(response_obj.json())

#需要默认文件里面写个初始化值1
with open("e:\\data.txt","r+") as fp:        #打开data.txt文件
unique_number = fp.readline().strip()      #读取data.txt文件的参数(多行的话要加for循环)
fp.seek(0,0)                  #游标回到初始位置,为修改参数做准备
fp.write(str(int(unique_number)+10))

with open("e:\\test_data.txt","r+") as fp:        #打开文件e:\\test_data.txt,文件内参数格式parameter1|parameter2|parameter3
line=fp.readline()
interface=eval(line.split("|")[0])            #切片取【0】位置的参数register(具体值由from conf import *导入)作为请求的url
value=json.dumps(eval(line.split("|")[1]))        #读取数据后切片取【1】位置的参数作为请求的参数
assert_word=line.split("|")[2]              #读取数据后切片取【2】位置的参数作为响应的断言值

#print(interface)
#print(type(value))
r=send_request(interface,value)          #调用函数send_request,请求接口,并把响应赋值给r
get_response_info(r)                #调用响应内容函数get_response_info,打印请求的响应信息
assert_response(r,assert_word)            #调用断言函数assert_response,判断用例是否通过

static_data["username"]=eval(line.split("|")[1])["username"]          #将username存到全局变量中,下次有关联时使用
print(static_data["username"])

python接口测试实例--数据驱动(程序与数据分离)的更多相关文章

  1. Python接口测试-以&连接拼接字典数据(get中url请求数据)

    get请求的utl数据是这样的,例如:/banner/findBanner?bannerType=1&_=1556107073181 ''' 1-banner图-banner/findBann ...

  2. 【Python接口测试】简单系统登录接口测试实例

    我们可以用Jmeter做接口测试,但是呢个人觉得那个有点局限性,用python就灵活很多, 可以按自己的思路来构建比较灵活,下面给大家介绍一个简单的接口测试实例. 一.我们的思路如下: 首先我们要弄清 ...

  3. python之unittest框架实现接口测试实例

    python之unittest框架实现接口测试实例 接口测试的方法有很多种,具体到工具有postman,jmeter,fiddler等,但是工具的局限性是测试数据的组织较差,接口的返回工具的判断有限, ...

  4. Python爬虫框架Scrapy实例(三)数据存储到MongoDB

    Python爬虫框架Scrapy实例(三)数据存储到MongoDB任务目标:爬取豆瓣电影top250,将数据存储到MongoDB中. items.py文件复制代码# -*- coding: utf-8 ...

  5. [python]使用python实现Hadoop MapReduce程序:计算一组数据的均值和方差

    这是参照<机器学习实战>中第15章“大数据与MapReduce”的内容,因为作者写作时hadoop版本和现在的版本相差很大,所以在Hadoop上运行python写的MapReduce程序时 ...

  6. 【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC

    [送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...

  7. Appium+python自动化(三十)- 实现代码与数据分离 - 数据配置-yaml(超详解)

    简介 本篇文章主要介绍了python中yaml配置文件模块的使用让其完成数据和代码的分离,宏哥觉得挺不错的,于是就义无反顾地分享给大家,也给大家做个参考.一起跟随宏哥过来看看吧. 思考问题 前面我们配 ...

  8. Jmeter 接口自动化-脚本数据分离实例

    一. 背景:  为了让大家更加的了解Jmeter,并且使用起来游刃有余.这篇我们主要讲一下,如何优雅的使用Jmeter一步步的实现接口自动化,完成脚本与数据分离,把可能对Jmeter脚本的维护转移到c ...

  9. 一个Redis实例适合存储不同应用程序的数据吗?

    Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念. Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据 ...

随机推荐

  1. 微信mac版的bug 直接显示了消息原始数据

    <msg> <voicemsg endflag="1" cancelflag="0" forwardflag="0" vo ...

  2. java构造函数修饰符

    java 构造函数,可以被访问修饰符修饰,而不能被特殊修饰符修饰:(在编译器经过测试) 访问修饰符: public (最常用,其他类的任何位置都可以访问) protected(能够在同一包中被子类访问 ...

  3. JVM学习(3)——总结Java内存模型---转载自http://www.cnblogs.com/kubixuesheng/p/5202556.html

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 为什么学习Java的内存模式 缓存一致性问题 什么是内存模型 JMM(Java Memory Model)简 ...

  4. Go指南练习_rot13Reader

    https://tour.go-zh.org/methods/23 一.题目描述 有种常见的模式是一个 io.Reader 包装另一个 io.Reader,然后通过某种方式修改其数据流. 例如,gzi ...

  5. Pycharm+Django搭建第一个Python Web程序

    1.安装django 无论是Python2.x还是Python3.x版本,都可以使用pip来安装Django.在控制台使用如下命令:pip install django 如: 2.检查dgango是否 ...

  6. Mybatis(二)基于注解的入门实例

    前言 上一篇简单的介绍了Mybatis的概念和基于XML来实现数据库的CRUD,这篇给大家实现基于注解的CRUD. 一.初始搭建 在基于注解当中前四步和上一篇基于XML是一样的,分别是: 1)创建数据 ...

  7. Scala学习笔记(二):object、伴生对象和基本类

    object object 是只有一个实例的类.它的定义与Java中的class类似,如: // 单例对象 object AppEntry { def main(args: Array[String] ...

  8. mysql+redis

    微博的系统架构,想用mysql+redis配合使用,具体操作步骤: 写入数据到Redis,,然后在写个运行cron的脚本,美妙读内存,并写入数据库即可. 使用注意: 1.MySQL使用需要注意的地方: ...

  9. [原]pomelo基础知识(一)

    1.pomelo基本介绍 http://blog.gfdsa.net/2013/06/04/pomelo/pomelo_study_two/ 2.如何配置一个gate服务器 (1)首先 需要在game ...

  10. ASP.NET MVC 4 (七) 模板帮助函数

    和普通HTML帮助函数不同,模板帮助函数不需要指定所用的HTML类型,MVC会推断选择合适的HTML元素,这让我们有更多的灵活性. 使用模板帮助函数 我们使用<ASP.NET MVC 4 (六) ...