zoukankan      html  css  js  c++  java
  • 接口自动化练手

    测试的结构如下:

     工具类,这里设计的工具类用于读取文件,包括手机,密码,token,cartid,:

     1 import csv
     2 import pandas       #导入读取csv文件的模块
     3 import numpy
     4 from builtins import type
     5 class File():
     6     def read(self):     #读取手机密码
     7         f = open('../TestCase/test.csv', 'r', encoding='utf-8')
     8         cr = pandas.read_csv(f)
     9         p = cr['手机']
    10         w = cr['密码']
    11         phone = numpy.array(p)      #把读取的字段数据转换为列表
    12         word = numpy.array(w)
    13         f.close()
    14         return phone[-1],word[-1]       #返回最后一条数据
    15     def readcookie(self):
    16         f = open('../TestCase/cookie.csv', 'r', encoding='utf-8')
    17         cr = pandas.read_csv(f)
    18         ck = cr['cookie']
    19 
    20         cook = numpy.array(ck)
    21         f.close()
    22         return cook[-1]
    23 
    24     def readcartid(self):
    25         f = open('../TestCase/cart_id.csv', 'r', encoding='utf-8')
    26         cr = pandas.read_csv(f)
    27         cartid = cr['cart_id']
    28 
    29         cart_id = numpy.array(cartid)
    30         f.close()
    31 
    32         print(cart_id[-1])
    33         return cart_id[-1]
    34 
    35     def write(self,l):
    36         f = open('../TestCase/test.csv', 'a', encoding='utf-8')
    37         w = csv.writer(f)
    38         print(l)        #测试接收到的值
    39 
    40         w.writerow(l)
    41 
    42         f.close()
    43 
    44     def writecookie(self, cook):
    45         f = open('../TestCase/cookie.csv', 'a', encoding='utf-8')
    46         w = csv.writer(f)
    47         print(cook)  # 测试接收到的值
    48 
    49         w.writerow(cook)
    50 
    51         f.close()
    52 
    53     def writecartid(self, cart_id):
    54         f = open('../TestCase/cart_id.csv', 'a', encoding='utf-8')
    55         w = csv.writer(f)
    56         print(cart_id)  # 测试接收到的值
    57 
    58         w.writerow(cart_id)
    59 
    60         f.close()
    61 
    62 # f = File()
    63 # l = ['16093252748', 'VzQBKQv6']
    64 # print(f.read())

    业务类,包括注册,登录,加入购物车,立即购买功能:

    getMobileCode.py:

     1 import string
     2 
     3 import requests
     4 import time
     5 import random
     6 class GetMobileCode():
     7     mobile = '1' + ''.join(random.choice(string.digits) for i in range(10)) #随机生成1开头手机号
     8     def cause(self):
     9         if __name__ == '__main__':
    10             print(self.mobile)
    11         self.currStr = time.time()  #时间戳
    12         return self.mobile
    13 
    14     def getcode(self):
    15         d = {'currStr': self.currStr, 'mobile':self.mobile}
    16         r = requests.post('http://106.54.81.164:8080/front/getMobileCode', data=d)#调用post方法
    17         print(r.status_code)
    18         print(r.text)

    mobileRigester.py:

     1 import random
     2 import string
     3 import requests
     4 # #
     5 class MobileRigester():
     6     def cause_passwd(self):
     7         self.passwd = ''.join(random.choice(string.digits + string.ascii_letters) for i in range(8))
     8         return self.passwd
     9     def rigester(self,mobile):
    10         self.d = {'mobileCode':'abc','mobile':mobile, 'password':self.passwd}
    11         r = requests.post('http://106.54.81.164:8080/front/mobileRegister',data=self.d)
    12         print(r.text)
    13         return mobile,self.passwd   #返回手机号,密码的元组

    loginCheck:

     1 import requests
     2 
     3 class LoginCheck():
     4 
     5     def login(self,li):
     6         d = {'username':li[0], 'password': li[1], 'captcha': 'abc'}
     7         # print(username,passwd)
     8         r = requests.post('http://106.54.81.164:8080/front/loginCheck',data=d)
     9         print(r.text)
    10         print(r.status_code)
    11         status = r.status_code
    12         r_json = r.json()
    13         c = r.cookies
    14         return c

    buyNow.py

     1 import requests
     2 
     3 
     4 class Buy():
     5         def buynow(self,token):    #,cookie
     6             d = {'goodsId':'08d03f04c22f454c86cbb869d6163f2f','count':'2','specId':'0065f44fbd0342c1a9eafc1fa1630b53','TOKEN':token}
     7             r = requests.post('http://106.54.81.164:8080/front/cart/buyNow', data=d)      #把token放到data里一起提交
     8             print(r.text)
     9             # print('1111')
    10             return r.json()
    11 
    12 # b = Buy()
    13 # b.buynow()

    addOrder.py:

     1 import requests
     2 
     3 class order():
     4     def add(self,cartid,token):  #,cookie,cartid
     5         # print(cartid)
     6         # print(token)
     7         d = {'cartIds':cartid, 'storeId': 'b785c011f9a64d2087331abc5e581f3d', 'address_options': 'f015b66a6ac645558324e49e05f5106e', 'paytype': '1', 'isPd': '0','TOKEN':token}
     8         r = requests.post('http://106.54.81.164:8080/front/cart/addOrder', data=d)
     9         print(r.text)
    10 # o = order()
    11 # o.add()

    测试类,对以上业务进行测试:

    getmobilecode.py:

    1 from ttt.Transaction.getMobileCode import GetMobileCode#导入业务类包
    2 class test_mobilecode():
    3     def test(self):
    4         g = GetMobileCode() #创建业务类对象
    5         g.cause()
    6         g.getcode()
    7         return g.cause()
    8 t = test_mobilecode()   #测试类对象
    9 mob = t.test()

    mobilerigester.py:

     1 from ttt.TestCase.getmobilecode import mob
     2 from ttt.Transaction.mobileRigester import MobileRigester
     3 from ttt.Util.tools import File
     4 
     5 class test_rigester():
     6     def test(self):
     7         t_rigester = MobileRigester()
     8 
     9         t_rigester.cause_passwd()
    10         l = list(t_rigester.rigester(mob))      #获得返回的list类型数据
    11         f = File()
    12         f.write(l)      #把手机,密码写入文件 #在当前包下调用其他类执行open操作,只会在当前包进行查找,别的包找不到,如果没有,就会创建该文件
    13         print(l)  # 测试传入的值
    14 
    15 t_r = test_rigester()
    16 t_r.test()

    loginCheck_test.py:

     1 from ttt.Transaction.loginCheck import LoginCheck
     2 from ttt.Util.tools import File
     3 
     4 
     5 class login():
     6     def login_test(self):
     7         logincheck = LoginCheck()
     8         re = File()
     9         li = re.read()
    10         cook = logincheck.login(li)     #获得cookie
    11         cookie = [cook['TOKEN']]
    12         # pickle.dump()
    13         # cookie = cook[cook.index('='):cook.index('/') + 1]      #截取cookie的int字段
    14 
    15         w = File()
    16         w.writecookie(cookie)               #调用写cookie方法写入
    17         # print(li[0],li[1])
    18         return cook
    19 l = login()
    20 l.login_test()

    buyNow.py:

     1 from builtins import type
     2 
     3 from ttt.Transaction.buyNow import Buy
     4 from ttt.Util.tools import File
     5 
     6 
     7 class buynow():
     8     def buy(self):
     9         buy = Buy()
    10         f = File()
    11         c = f.readcookie()
    12 
    13         print(c)
    14         print(type(c))
    15         cartid = buy.buynow(c)
    16         cart_id = [cartid['cartIds']]
    17         fc = File()
    18         fc.writecartid(cart_id)
    19     # status = buy.r.status_code
    20     # r_dict = buy.r.json()
    21     # r_card = r_dict['cartIds']
    22     # print(buy.r.text)
    23 b = buynow()
    24 b.buy()

    addorder_test.py:

     1 from ttt.Transaction.addOrder import order
     2 from ttt.Util.tools import File
     3 
     4 class addOrder():
     5     def add(self):
     6 
     7         f = File()
     8         cookie = f.readcookie()
     9         cartid = f.readcartid()
    10         print('cookie:',cookie)
    11         print('cartid:',cartid)
    12 
    13         aod = order()
    14         aod.add(cartid,cookie)
    15 addorder_test = addOrder()
    16 addorder_test.add()

    还有三个存数据的csv文件:

    test.csv:

     cookie.csv:

     cart_id.csv:

  • 相关阅读:
    [IOI1994][USACO1.5]数字三角形 Number Triangles
    和为给定数
    小凯的疑惑
    棋盘
    【2020NOI.AC省选模拟#2】C. 送分题
    【NOI OL #2】涂色游戏
    【NOI OL #3】小结
    【NOI OL #1】最小环
    【NOI OL #1】冒泡排序
    【NOI OL #1】序列
  • 原文地址:https://www.cnblogs.com/x991788x/p/13577654.html
Copyright © 2011-2022 走看看