zoukankan      html  css  js  c++  java
  • 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')
  • 相关阅读:
    成员对象和封闭类
    静态成员
    this指针
    类型构造构造函数
    拷贝构造函数
    C++
    矩阵快速幂求递推式
    对浅拷贝和深拷贝的基本理解
    传引用作为形参和返回值_节省参数拷贝的时间
    namespace的基本知识
  • 原文地址:https://www.cnblogs.com/cjxxl1213/p/13215508.html
Copyright © 2011-2022 走看看