python手机充值代码_不用框架,原生使用python做注册接口/登陆接口/充值接口的测试,做的数据/代码分离...

注意充值时候,cookie的处理方法,还是原来的三种方法

1.操作数据文件  do_exclel.py

# -*- conding:utr-8 -*-

#@Time :2018/11/8 22:46

#@Author:GYP测试

#@File :do-excel.py

from openpyxl import load_workbook

class Read_data:

def __init__(self,file_name,sheet_name):

self.file_name=file_name

self.sheet_name=sheet_name

#读取头消息

def get_header(self):

wb=load_workbook(self.file_name)

sheet=wb[self.sheet_name]

header=[]

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

header.append(sheet.cell(1,i).value)

return header

#读取Excel中的测试数据

def read_data(self):

wb = load_workbook(self.file_name)

sheet = wb[self.sheet_name]

header=self.get_header()

read_test_data=[]

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

sub_data={}

for j in range(1,sheet.max_column):

sub_data[header[j-1]]=sheet.cell(i,j).value

read_test_data.append(sub_data)

return read_test_data

#测试结果写入Excel中

class write_data:

def __init__(self,file_name,sheet_name,value):

self.file_name=file_name

self.sheet_name=sheet_name

self.value=value

def write_data(self):

wb = load_workbook(self.file_name)

sheet = wb[self.sheet_name]

# for i in range(len(self.value)):

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

# print(rownum)

sheet.cell(rownum,sheet.max_column).value = self.value[rownum-2]

wb.save(self.file_name)

if __name__ == '__main__':

# res1 = Read_data('E:\\test\API_AUTO\\test_data\data.xlsx','login').read_data()

# print(res1)

data=['a','b','c',1,2]

res2= write_data('D:\\autou_testing\API_AUTO\\test_data\data.xlsx','login',data).write_data()

2.http请求的写法

# -*- conding:utr-8 -*-

#@Time :2018/11/8 21:56

#@Author:GYP测试

#@File :requests_testing.py

import requests

class requests_test:

def test_api(self,http_method,url,data,cookie=None):

if http_method=='post':

res=requests.post(url,data,cookies=cookie)

else:

res=requests.get(url,data,cookies=cookie)

return res

if __name__ == '__main__':

url_login = 'http://119.23.241.154:8080/futureloan/mvc/api/member/login'

url_recharge = 'http://119.23.241.154:8080/futureloan/mvc/api/member/recharge'

login_data = {"mobilephone": "", "pwd": ""}

recharge_data = {"mobilephone": "", "amount": ""}

# 登录

res = requests_test().test_api('post',url_login,login_data)

print("登录结果是:", res.json())

# 充值

recharge_res = requests_test().test_api('get', url_recharge, recharge_data, res.cookies)

print("充值结果是:", recharge_res.json())

3.通过run文件,运行,后在excel中查看测试结果

run.py

# -*- conding:utf-8 -*-

#@Time :2018/11/9 10:07

#@Author:GYP测试

#@File :run.py

from tools.do_excel import write_data,Read_data

from tools.http_requests1 import requests_test

cookie=None

def run(sheet_name):

global cookie

res1=Read_data('D:\\autou_testing\API_AUTO\\test_data\data.xlsx',sheet_name).read_data()

test_data=[]

for item in res1:

res = requests_test().test_api(item['http_menod'],item['url'],eval(item['data']),cookie)

if res.cookies:

cookie=res.cookies

test_data.append(res.json()['code'])

#写入预期结果

write_data('D:\\autou_testing\API_AUTO\\test_data\data.xlsx',sheet_name,test_data).write_data()

#注册接口

run('register')

#登陆接口

run('login')

#充值接口

run('recharge')

今天新内容:

1.requests.ssesion,,会话中的用法

a.登陆请求后,其他接口不用带cookie的

b.get和post请求,只有一个参数,其他的关键字参数,请看结合视频查看源码

2.大数据处理的模块pandas使用的介绍,详细情况下面链接博客

https://www.cnblogs.com/liulinghua90/p/9935642.html

python - 接口自动化测试 - TestRecharge - 充值接口测试用例

# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: test_recharge.py @ide: PyChar ...

Python之注册表增删改查(干货)

在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表.无所不能的python下如何完成这些 ...

基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

引言 在上一篇讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

哪些产品不用开发原生APP,微信公众号就够了?

最近一阶段H5技术被推到高峰,很多人认为借助H5就能利用微信公众号取代APP原生应用了,而事实是怎么样的?这里我从产品层做一个客观分析. 一,原生APP总体趋势 要谈APP是否会被微信取代,那么必须回 ...

Dora.Interception, 一个为.NET Core度身打造的AOP框架[3]:Interceptor的注册

在中我们着重介绍了Dora.Interception中最为核心的对象Interceptor,以及定义Interceptor类型的一些约定.由于Interc ...

python之路----继承的抽象类和接口类

抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数 ...

Dubbo框架介绍与安装 Dubbo 注册中心(Zookeeper-3.4.6)

背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. • 单一应用架构 • 当网站流量很小时, ...

ASP.NET CORE 学习之原生DI实现批量注册

以前使用Autofac的时候,只需一句AsImplementInterfaces()就可以很轻松实现批量注册功能.而asp.net core内置的DI框架没有现成的批量注册方法,考虑到替换Autofa ...

随机推荐

.net 面试基础题

Reference Link:http://www.yjbys.com/bbs/326026.html const关键字用来声明编译时常量,readonly用来声明运行时常量 密封类不能同时为抽象类 ...

Beta版本冲刺第二天 12.6

一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 昨天完成任务 今天完成任务 第三天冲刺要做任务 问题困难 心得体会 胡泽善 完成了"记住密码"的的逻辑以及BUG修改 ...

多线程并发编程之显示锁ReentrantLock和读写锁

在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock. ReentrantLock概况 ReentrantLock是 ...

textarea右下角黑点

先记录问题及解决方法,原因后续深入了解 在布局中,用到了textarea 输入框,在Android手机上却显示右下角有一个黑点,检查代码无误,代码没有多余的点符号. 解决:在textarea 中添加 ...

python库-Arrow处理时间

Arrow是一个处理时间的python库,能一键转换dates/times/timestamps等时间格式而不需要大量导致各种时间模块和格式转换函数,十分快捷方便 使用Arrow需要两步转换操作: 1 ...

ubuntu ftp服务

apt-get install vsftpd apt-get update vi /etc/apt/sources.list vim  /etc/vsftpd.conf service vsftpd ...

adb的使用

前面配置了环境变量,可以在计算机任何位置打开cmd窗口使用adb. 连接android应用 使用connect命令连接盒子的ip(要确保电脑所连接的网络和盒子是一个网络) 抓日志 抓取某一个操作过程的 ...

CentOS7配置网络

#进入目录 cd /etc/sysconfig/network-scripts/ #编辑ifcfg-XXX vi ifcfg-eno167777 #把onboot=no 改为yes #重启 shutd ...

JavaScript创建对象的方法汇总

JavaScript中的对象 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”严格来讲,这就相当于说对象是一组没有特性顺序的值.对象的每一个属性或方法都有一个名字 ...

Docker Libnetwork Bridge插件实现代码分析----创建网络部分

// drivers/bridge/bridge.go // Create a new network using bridge plugin 1.func (d *driver) CreateNet ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值