python使用笔记29--代码驱动
1 import unittest
2 import requests
3 import jsonpath
4 import time
5 import nnreport
6
7 def get_value(d,key,expr=False,more=False):
8 if expr:
9 jp = jsonpath.jsonpath(d,key)#获取json字符串里某个key的值,返回的是[]
10 else:
11 jp = jsonpath.jsonpath(d, '$..%s' % key) # 获取json字符串里某个key的值,返回的是[]
12
13 if jp:
14 if more:
15 return jp
16 else:
17 return jp[0]
18
19
20 class LiteMallBase(unittest.TestCase):
21 username = "admin123"
22 password = username
23 host = "http://127.0.0.1:8080"
24
25 def login(self):
26 '''登录'''
27 url = self.host + '/admin/auth/login'
28 data = {'username': self.username, 'password': self.password}
29 r = requests.get(url, json=data)
30 token = get_value(r.json(), 'token')
31 self.assertIsNotNone(token, msg='获取不到token值')
32 return token
33
34 def create_coupon(self, name, token, money):
35 '''建券'''
36 url = self.host + "/admin/coupon/create"
37
38 data = {"name": name, "desc": "优惠券111",
39 "total": "999", "discount": 100, "min": money,
40 "limit": 1, "type": 0, "status": 0, "goodsType": 0,
41 "goodsValue": [], "timeType": 0, "days": "10",
42 "startTime": None, "endTime": None}
43 headers = {'X-Litemall-Admin-Token': token}
44 r = requests.get(url, json=data, headers=headers)
45 cid = get_value(r.json(), 'id')
46 cname = get_value(r.json(), 'name')
47 errno = get_value(r.json(), 'errno')
48 self.assertEqual(errno, 0, msg='创建券失败%s' % errno)
49 self.assertEqual(name, cname, msg='创建券名和返回的不一致')
50 return cid
51
52 def index_data(self):
53 '''查询首页数据'''
54 url = self.host + '/wx/home/index'
55 r = requests.get(url)
56 errno = get_value(r.json(), 'errno')
57 self.assertEqual(errno, 0, msg="首页数据查询失败")
58 return r.json()
59
60 class CouponCreate(LiteMallBase):
61 def test_create_coupon(self):
62 '''建券测试'''
63 name = "自动化测试%s-优惠券" % int(time.time())
64 token = self.login()
65 cid = self.create_coupon(name,token,9999)
66 index_data = self.index_data()
67 coupon_ids = get_value(index_data,'$.data.couponList..id',True,True)
68 self.assertIn(cid,coupon_ids,msg='创建的券ID不存在,不存在的ID是%s'%cid)
69
70
71 suite = unittest.makeSuite(CouponCreate)
72 report = nnreport.BeautifulReport(suite)
73 report.report(description='建券测试报告',filename='建券测试报告.html')
python使用笔记29--代码驱动的更多相关文章
- python学习笔记29(python中堆的使用)
堆(heap):优先队列的一种,使用优先队列能够以任意顺序增加对象,并且能在任意时间(可能在增加对象的同时)找到(也可能是移除)最小元素,比用于列表中min的方法要高效. Python中并没有独立的堆 ...
- iOS: 学习笔记, 用代码驱动自动布局实例(swift)
iOS自动布局是设置iOS界面的利器.本实例展示了如何使用自动布局语言设置水平布局, 垂直布局1. 创建空白iOS项目(swift)2. 添加一个控制器类, 修改YYAppDelegate.swift ...
- iOS: 学习笔记, 用代码驱动自动布局实例
iOS自动布局是设置iOS界面的利器. 本实例展示了如何使用自动布局语言设置水平布局, 垂直布局 1. 创建空白iOS项目 2. 添加一个控制器类, 修改YYAppDelegate.m文件 #impo ...
- python学习笔记比较全
注:本笔记基于python2.6而编辑,尽量的偏向3.x的语法 Python的特色 1.简单 2.易学 3.免费.开源 4.高层语言: 封装内存管理等 5.可移植性: 程序如果避免使用依赖于系统的特性 ...
- Python学习笔记(十一)
Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...
- Python学习笔记,day5
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
- Python机器学习笔记:使用Keras进行回归预测
Keras是一个深度学习库,包含高效的数字库Theano和TensorFlow.是一个高度模块化的神经网络库,支持CPU和GPU. 本文学习的目的是学习如何加载CSV文件并使其可供Keras使用,如何 ...
- Python学习笔记之基础篇(-)python介绍与安装
Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...
- Python学习笔记(四)函数式编程
高阶函数(Higher-order function) Input: 1 abs Output: 1 <function abs> Input: 1 abs(-10) Output: 1 ...
随机推荐
- githubssh配置
- 通过git将项目传到github上
lenovo@LAPTOP-3KMEN0B2 MINGW64 /e/Users/lenovo/springboot-project/forum $ ls forum.iml HELP.md mvnw* ...
- Linxu 修改主机名
方法一: # hostname NEW_NAME <这种方法只对当前系统有效,重启后无效> 方法二: # hostnamectl set-hostname NEW_NAME:设定主机名,永 ...
- 回顾Servlet
1.新建一个Maven工程当做父工程!pom依赖! <!-- 依赖 --> <dependencies> <dependency> <groupId>j ...
- python实现发送微信消息
import json from threading import Timer from wxpy import * import requests import urllib.parse def g ...
- js发送请求给服务端
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- YOLOV4各个创新功能模块技术分析(一)
YOLOV4各个创新功能模块技术分析(一) 简 介 yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection arxiv:http ...
- nvGRAPH三角形计数和遍历示例
nvGRAPH三角形计数和遍历示例 #include " stdlib.h" #include" inttypes.h" #include" stdi ...
- C#将DataTable数据导出CSV文件
C#将DataTable数据导出CSV文件通用方法! //导出按钮调用导出方法 protected void btnCSV_Click(object sender, EventArgs e) ...
- Redis--狂神说Redis基础汇总(完结)
Redis--狂神说Redis基础汇总(完结) 2021.6.12-2021.6.14:端午学学玩玩弄完了Redis基础的汇总,越学越觉得自己知识量的匮乏. 参考链接:狂神说Java--Redis汇总 ...