python实现api接口_python实现API接口自动化

框架简介

选用python 3语言,使用库requests、unittest、HTMLTestRunner实现。测试用到的接口参数的数据是写在代码中的,没有用EXCEL(尝试过,当有几十个参数时看着太头疼)。这是根据工作中实际的接口测试项目,自己摸索一段时间后写的,不通用,比较简单。

API接口

项目实现的接口是提供给第三方调用的。介绍一下API接口的调用,申请到app_key和 app_secret,请求地址为:服务器地址/业务地址,公共必填参数(随机数nonce除外,附在请求的body内)附在URL地址上请求。

91fd20653e44

sign是对请求参数签名,签名方法如下:

1. 指定一种签名方式:encry_method=md5,sha256,sha1,sha3_256

2.计算nonce: md5(ts)

3. 获取到app_key,app_secret,ts,按如下规则:sign = $encry_method("nonce"+nonce+"ts"+ts+"app_key"+app_key+"app_secret"+secret ) 即生成字符串的哈希值

接口参数用form表单形式提交

二次封装requests

将发送请求中不变的部分如签名,公共参数等封装为类configHttp里面通用的部分,变化的地方就在设置请求URL和请求参数。

初始化类,从常量文件const_sign中获取常量

91fd20653e44

创建了defaultData这个类来存每个接口的默认参数,参数是用的字典类型表示,参数名称是key,value是存的列表:[参数取值,参数是否必填,参数是否是文件(F表示文件,P表示非文件)]

91fd20653e44

类configHttp的set_data函数将文件参数和非文件参数区分了出来

91fd20653e44

类configHttp的post函数处理了文件参数(包括一个参数有多个文件路径,用列表存),从路径中读取文件内容后关闭文件

91fd20653e44

创建测试用例

单接口测试:一个接口创建一个类,取默认参数,有变化的参数值更新后传值发送。

91fd20653e44

多接口业务联调:将能通用的业务抽取出来封装后使用。

91fd20653e44

同一参数不同取值或校验必填参数,创建子用例subTest:

91fd20653e44

日志

WriteLog是封装的日志模块,有存储在本地的,也有输出到控制台显示的,测试报告是取的输出到控制台显示的内容。

测试报告

网上找的修改支持python3的HTMLTestRunner库,将该py文件放到python安装目录的Lib下使用。

91fd20653e44

91fd20653e44

结束语

在写这个代码前,网上搜索了一番,想找到修改一番可以直接拿来用的,比如HttpRunner 这一款面向HTTP(S) 协议的通用测试框架。尝试了后没找到切入点,就尝试自己先简单写写,看看会遇到哪些问题,之后再去学习研究这个通用测试框架。就好比一个武学初级菜鸟给他一把神器也发挥不出它的威力。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值