python接口自动化-实战(第一阶段)

普及数据分离/代码分离/文件分离的概念

  • 数据分离
    • API_AUTO 项目名
      • run.py 代码执行入口
      • common 公共类,大家都可使用(也可以叫tools工具类)
        • conf 放置配置文件xx.conf
        • public 放置公共代码
      • test_data测试数据
      • result测试结果
        • test_result 测试结果
        • test_report 测试报告
        • image 测试截图
        • log 日志



1.高级用法-会话

import requests

s=requests.session() #创建一个会话

logon_res=s.get(login_url,params=login_data) #login_data必须有个key,常用是params

recharge_res=s.post(recharge_url,recharge_data) #这里就不用传cookies啦

print(recharge_res.json())

 

2.给类取别名

from API_AUTO.common.public.http_request import HttpRequest as ht

 

3.写run.py文件

from API_AUTO.common.public.http_request import HttpRequest #引入自己封装的http请求

 

#登录

payload = {"user_phone": "1801923****", "device_model": "iphone7"}

res=HttpRequest().http_request("/login","post",payload)

 

4.改造run.py文件

#run.py文件

#代码执行的入口:

from API_AUTO.common.public.http_request import HttpRequest

import json

 

def run(test_data):

    for item in test_data: #测试数据用一个list[]存储,一个{}是一条用例

        print ("正在测试的case是",item["title"])

        res = HttpRequest().http_request(item["url"], item["method"],eval(item["payload"]))

        print res.json()

 

#测试数据

test_data=[{"url":"/login","method":"post",

"payload":{"user_phone": "1801923****","device_model": "iphone7"},"title":"正确的登录"},

  {"url":"/login","method":"post",

"payload": {"user_phone": "1850171****", , "device_model": "iphone7"},"title":"黑名单登录"}]

#调用函数

run(test_data)

 

5.通过excel管理测试数据

写一个读取excel的工具类,在学习excel操作时写过,这次需要添加一个写回数据的方法

 

```

from openpyxl import load_workbook

 

'''

操作excel

'''

class DoExcel:

    def get_data(self,file_name,sheet_name):

        wb=load_workbook(file_name)

        sheet=wb[sheet_name]

        test_data=[] #每条数据要存在列表里

        for i in range(2, sheet.max_row+1):

            sub_data={}

            sub_data["case_id"] = sheet.cell(i, 1).value

            sub_data["url"]=sheet.cell(i,2).value

            sub_data["method"]=sheet.cell(i,3).value

            sub_data["payload"]=sheet.cell(i,4).value

            sub_data["title"]=sheet.cell(i,5).value

            test_data.append(sub_data)

        return test_data

 

    def write_back_data(self,file_name,sheet_name,i,value):

        wb=load_workbook(file_name)

        sheet=wb[sheet_name]

        sheet.cell(i,6).value=value

        wb.save(file_name) #保存

 

```

 

6.改造`run.py`

```

from API_AUTO.common.public.http_request import HttpRequest

from API_AUTO.common.public.do_excel import DoExcel

 

def run(test_data):

    for item in test_data:

        print "正在测试的case是",item["title"]

        res=HttpRequest("1.6.0","android", "785c6fee0e4488ca412a5afc9a00e9d8").http_request(item["url"], item["method"],eval(item["payload"]))

        print res.json() #python2.7的print不需要括号

        DoExcel().write_back_data("test_data/test_data.xlsx","Sheet1",item["case_id"]+1,str(res.json()))

 

test_data=DoExcel().get_data("test_data/test_data.xlsx","Sheet1")

run(test_data)

 

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值