接口自动化测试-框架的生成

2020-06-08  本文已影响0人  work_zhangxt

搭建前的准备工作:
在开始写脚本前会用到Python的一个第三方HTTP协议支持库requests,通过pip命令可以直接安装
pip install requests
安装完成后,就可以引用requests完成接口测试
第一个单接口测试是验证一个无参数的、GET访问的验证

# Python代码中引入requests库,引入后才可以在你的代码中使用对应的类以及成员函数
import requests
# 建立url_index的变量,存储要测的接口
url_index='https://stage2.chelaile.net.cn'
# 调用requests类的get方法,也就是HTTP的GET请求方式,访问了url_index存储的首页URL,返回结果存到了response_index中
response_index = requests.get(url_index)
# 存储返回的response_index对象的text属性存储了访问主页的response信息,通过下面打印出来
print('Response内容:'+response_index.text)

第二个要测的接口是登录接口,是以POST方式访问的,需要传递手机号和验证码两个参数

# python代码中引入requests库,引入后才可以在你的代码中使用对应的类以及成员函数
import requests
# 建立url_login的变量,存储战场系统的登录URL
url_login = 'https://stage2.chelaile.net.cn/wow/user!login2.action?'
# username变量存储用户名参数
openId = 'zxt'
# password变量存储密码参数
verifyCode = 'zxt'
# 拼凑body的参数
payload = 'username=' + openId + '&password=' + verifyCode
# 调用requests类的post方法,也就是HTTP的POST请求方式,
# 访问了url_login,其中通过将payload赋值给data完成body传参
response_login = requests.post(url_login, data=payload)
# 存储返回的response_index对象的text属性存储了访问主页的response信息,通过下面打印出来
print('Response内容:' + response_login.text)

可以思考一下,上面的测试脚本,是不是可以把一些公共的操作抽象到一个文件呢?这样就可以在写脚本的时候通过拼凑路由、Request入参就可以完成了
可以建立一个叫common.py的公共的方法类

import requests
# 定义一个common的类,它的父类是object
class Common(object):
  # common的构造函数
  def __init__(self):
    # 被测系统的根路由
    self.url_root = 'https://stage2.chelaile.net.cn'
  # 封装你自己的get请求,uri是访问路由,params是get请求的参数,如果没有默认为空
  def get(self, uri, params=''):
    # 拼凑访问地址
    url = self.url_root + uri + params
    # 通过get请求访问对应地址
    res = requests.get(url)
    # 返回request的Response结果,类型为requests的Response类型
    return res
  # 封装你自己的post方法,uri是访问路由,params是post请求需要传递的参数,如果没有参数这里为空
  def post(self, uri, params=''):
    # 拼凑访问地址
    url = self.url_root + uri
    if len(params) > 0:
      # 如果有参数,那么通过post方式访问对应的url,并将参数赋值给requests.post默认参数data
      # 返回request的Response结果,类型为requests的Response类型
      res = requests.post(url, data=params)
    else:
      # 如果无参数,访问方式如下
      # 返回request的Response结果,类型为requests的Response类型
      res = requests.post(url)
    return res

通过这个公共类,就可以将开始的两个单接口接修改完善一下

uri = '/'
comm = Common()
response_index = comm.get(uri)
print('Response内容:' + response_index.text
uri = '/wow/user!login2.action?'
openId = 'zxt'
verifyCode = 'zxt'
payload = 'username=' + openId + '&password=' + verifyCode
comm = Common()
response_login = comm.post(uri,params=payload)
print('Response内容:' + response_login.text)

如果有更复杂的代码时,会发现完善后的代码更简洁,易读
这就是一个简单的框架的诞生,从测试脚本到测试框架的转化过程,它的封装和抽象过程并不是一蹴而就的,是需要积累和一点点实践得来的

上一篇下一篇

猜你喜欢

热点阅读