测开之路六十:接口测试平台之common目录
实现接口测试平台使用jsonpath进行取值来断言,效果:
访问页面:
调试功能:http://www.kuaidi100.com/query
保存功能
触发执行功能
查看报告功能
目录结构
common的代码:
init:
import time
import uuid def get_timestamp(data=None):
""" 生成字符串格式的时间戳数据 20190704204826 """
if data:
return time.strftime("%Y%m%d%H%M%S", time.localtime(data)) # 把传进来的时间格式化为字符串
else:
return time.strftime("%Y%m%d%H%M%S", time.localtime(time.time())) def get_case_id():
""" 生成case的id,时间戳+uuid的第5到8位 """
return get_timestamp() + uuid.uuid1().hex[4:8] if __name__ == '__main__': print(get_timestamp())
print(get_case_id())
mongo:
from pymongo import MongoClient class Mongo(object):
""" MongoDB数据库的增删改查 """ def __init__(self, host='127.0.0.1', port=27017):
self.connect = MongoClient(host, port) def __del__(self):
self.connect.close() def insert(self, database, collection, documents):
""" 如果要插入的参数是一个,就执行insert_one()返回单个id,否则就执行insert_many()返回id的list """
_database = self.connect.get_database(database)
_collection = _database.get_collection(collection)
if isinstance(documents, dict):
result = _collection.insert_one(documents)
return str(result.inserted_id)
else:
result = _collection.insert_many(documents)
return [str(id) for id in result.inserted_ids] def search(self, database, collection, filter):
""" 查找 """
projection = None
if "projection" in filter:
projection = filter.pop("projection")
_database = self.connect.get_database(database)
_collection = _database.get_collection(collection)
return _collection.find(filter, projection) def delete(self, database, collection, filter):
""" 删除 """
_database = self.connect.get_database(database)
_collection = _database.get_collection(collection)
_collection.delete_one(filter) def update(self, database, collection, filter, documents):
""" 更新 """
_database = self.connect.get_database(database)
_collection = _database.get_collection(collection)
_collection.update_one(filter, {'$set': documents})
测开之路六十:接口测试平台之common目录的更多相关文章
- 测开之路六十二:接口测试平台之公共的js、html、平台入口
common.js //定义后台的host和端口var host = 'http://192.168.xxx.1:8000'; //'http://127.0.0.1:8000'; //用于发送htt ...
- 测开之路六十六:UI测试平台之处理逻辑和蓝图添加到程序入口
from selenium import webdriverfrom common import get_case_idfrom common.mongo import Mongo class Log ...
- 测开之路六十五:UI测试平台之js
//添加网址的函数,生成一个输入网址的标签,并且把标签append到id为cases下function browser() { var html = '\ <div class="ro ...
- 测开之路六十四:UI测试平台之前端页面
{% extends "base.html" %} {% block script %} <!-- 引入js文件,需要在base.html留入口,不然渲染会出问题. --&g ...
- 测开之路六十一:接口测试平台之interface蓝图
create的js //添加header的函数function add_header() { // 这里是动态拼接html语句,带着样式,拼凑成页面的 "key [] value []&qu ...
- 测开之路七十六:性能测试蓝图之html
<!-- 继承base模板 -->{% extends 'base.html' %} {% block script %} <!-- 从cdn引入ace edter的js --> ...
- 测开之路七十:监控平台之html
监控平台的html <!-- 继承base模板 -->{% extends "base.html" %} <!-- 引入bootstrap-datetimepic ...
- 测开之路八十六:python操作sqlite
创建sqlite数据库,并创建表和数据 python自带sqlite3库可以创建数据库文件 导入库:import sqlite3 创建游标,指定数据库名字:con = sqlite3.connect( ...
- 测开之路七十六:linux变量和环境变量
变量 赋值 variable=0,访问 $var或${var} 参数 $n 用``引住的会先执行(~键) 位置参数 环境变量/etc/profile:全局的环境变量 . bash_profile:用户 ...
随机推荐
- SpringBoot 使用maven创建springboot项目
有两种方式可以创建 1是使用spring-boot-starter-parent ,2是使用spring-boot-dependencies (即父项目dependencyManagement) ( ...
- cJSON使用笔记
将cJSON用到STM32f103上 cJSON内存管理使用的是标准库stdlib.h的malloc()free()realloc()动态内存管理函数,我STM32F103使用的是正点原子的mallo ...
- Consul集群Server模式
Consul集群Server模式 架构示意图 Consul在生产环境下运行模式分为两种:Server模式和Client模式(dev模式属于开发模式不在这里讨论),我们先用Server模式搭建一个Con ...
- 三连击 P1008 洛谷 python写法
三连击 P1008 洛谷 题意 将\(1,2, \cdots,9\)共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数. 解题思路 这里我使用了 ...
- csrf原理及flask的处理方法
csrf原理及flask的处理方法 为什么需要CSRF? Flask-WTF 表单保护你免受 CSRF 威胁,你不需要有任何担心.尽管如此,如果你有不包含表单的视图,那么它们仍需要保护. 例如,由 A ...
- 什么是http协议??
一.http协议的定义: http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本.图片.视频等)传输的规定.也就是说,htt ...
- P3188 [HNOI2007]梦幻岛宝珠
传送门 注意到 $a,b$ 不大 考虑对每一个 $a*2^b$ 的 $b$ 分别背包 设 $f[i][j]$ 表示只考虑 $b=i$ 的物品时,容量为 $j= \sum a$ 的最大价值 这个就是普通 ...
- LeetCode Lect7 堆及其应用
概述 堆是一颗完全二叉树.分为大根堆(父节点>=所有的子节点)和小根堆(父节点<=所有的子节点). 插入.删除堆顶都是O(logN),查询最值是O(1). 完全二叉树(Complete B ...
- mysql中,表与表之间的关系
""" 1.字段的修改.添加.删除 2.多表关系(外键) 3.单表详细操作:增删改,查(各种条件) """ 字段操作 create ta ...
- Linux 内核层和 用户层 配置 GPIO 引脚
Linux BSP 开发的基础就是和GPIO打交道, 下面总结下这几天对某家开发板的GPIO控制的知识. 公司的开发板用的是 DTB 模式 ,首先,进入 dts,dtsi文件查看关于GPIO 的模块 ...