美文网首页
接口自动化测试-框架的生成

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

作者: work_zhangxt | 来源:发表于2020-06-08 14:42 被阅读0次

    搭建前的准备工作:
    在开始写脚本前会用到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)
    

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

    相关文章

      网友评论

          本文标题:接口自动化测试-框架的生成

          本文链接:https://www.haomeiwen.com/subject/sdkftktx.html