• 接口自动化测试框架的搭建


    一.将要测试的接口域名写入到文件中,如下

    macname@MacdeMacBook-Pro Interface-automation-test % cat conf/hostname.yaml 
    data: {default_baseurl: 'https://baike.baidu.com', is_passed: true, new_baseurl: 'https://baike.baidu.com'}
    macname@MacdeMacBook-Pro Interface-automation-test % 

    default_baseurl以及new_baseurl 替换为待测项目的接口域名

    二.接下来编写接口用例,所有接口用例都在case文件夹中,里面的每个文件都是一个功能模块,每个文件中有该功能相关的多个接口,

    之所以写在一个文件中是因为接口间数据传递比较简单,比如创建公司后返回公司的id,用dic字典传递给后面的创建订单接口使用,比如下面是一个功能的接口用例

    # coding=utf-8
    import json
    import logging
    import os
    import sys
    sys.path.append("/".join(os.path.dirname(os.path.abspath(__file__)).split("/")[:-1])+'/lib')
    import requests
    sys.path.append("../")
    from util.getinfolib import GetInfo
    
    #日志使用 log
    = logging.getLogger(__name__) class TestUM: def setup_class(self): self.url = GetInfo().go() self.dic = {} self.headers = { 'Accept': 'application/json, text/plain, */*' , 'client': 'ios' , 'Content-Type': 'application/json;charset=UTF-8' , 'Origin': self.url , 'Referer': self.url ,'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36' } # 1 login def test_login(self): service_url = self.url + "/item/%E5%8E%A8%E8%89%BA/2375541?fr=aladdin" payload = {} r = requests.get(service_url, data=json.dumps(payload), headers=self.headers) assert r.status_code == 200 #参考写法 ''' # 1 login def test_login(self): service_url = self.url + "/login/app" payload = { "username": "shouji(勿删)", "password": "123" } r = requests.post(service_url, data=json.dumps(payload), headers=self.headers) assert r.status_code == 200 assert r.json()["code"] == 200 self.headers["token"] = r.json()['data']['token'] # 收油人员接受联单 def test_collections(self): service_url = self.url + "/collections" payload = { "page": 1, "size": 10 } r = requests.get(service_url, data=json.dumps(payload), headers=self.headers) self.dic["collectionId"] = r.json()["data"]["content"][0]["id"] assert r.status_code == 200 assert r.json()["code"] == 200 # 收油人员收油记录详情 def test_collectionsDetail(self): service_url = self.url + "/users/collections/" + str(self.dic["collectionId"]) payload = { } r = requests.get(service_url, data=json.dumps(payload), headers=self.headers) assert r.status_code == 200 assert r.json()["code"] == 200 # 收油人员入仓记录 def test_storage(self): service_url = self.url + "/storage" payload = { "page": 1, "size": 10 } r = requests.get(service_url, data=json.dumps(payload), headers=self.headers) self.dic["storageId"] = r.json()["data"]["content"][0]["id"] assert r.status_code == 200 assert r.json()["code"] == 200 '''

     本地查看接口执行结果

    github地址

    https://github.com/fusu192/Interface-automation-test
    

      

  • 相关阅读:
    jquerymobile 页面间URL传值
    xcode 静态链接库的问题
    iPad 用户体验关键要素
    Enable SharePoint Designer for Project Web App PWA 2010
    后台定位
    做一个iPhone应用需要花多少钱?
    ios无法获取坐标
    重装系统后ORACLE数据库恢复的方法
    【Web】百度有聊官网的一些布局不好之处
    【Pagoda】在pagodabox里建立项目并连接数据库
  • 原文地址:https://www.cnblogs.com/sea-stream/p/12774047.html
Copyright © 2020-2023  润新知