開源接口測試框架之公司應用篇


          

       最近一段時間,筆者一直在和我們公司的研發童鞋,運維童鞋等一起努力來搞我們公司的接口,每晚的那個點我們就開始了我們的工作,由於是后期補做,所以在時間上也是那么匆忙,閑暇之余,筆者想着怎么對接口進行詳細的功能測試,需要進行一系列的工作,來簡化我們測試的工作量,要做的太多,只可惜我們測試太少,精力有限。可是我們老大讓我們做的很多。哎,啥都別說了,還是專心的做自己工作吧,

 

          本來想着調研網上很多的工作呢,或者別人的開源框架呢,后來想想自己之前也做過這么的一個的工具,於是乎,我就開始對自己這個接口框架進行了改版,針對我們公司的接口進行了詳細的梳理,其實我們的接口和市面上的很多接口其實還是很相似的。都是http請求,格式還是json的格式,這對於我來說是很開心的,和我當初的接口開源的框架來說的初衷是一樣的,這樣一來就可以節省我一大部分時間,少去了代碼封裝等一系列的問題,節省了一大部分的時間,現在要做的就是把這個框架怎么能更快的代入到我們的測試中,也就是對開源的測試框架進行簡單的改裝,使之滿足我們日常的測試工作,降低我們的研發成本。

 

     雖然整個框架是我自己開發的,自己設計的,並且得到了很多讀者的反饋,但是在最初想引進我們公司的測試的過程中呢,我還是對這個框架進行了一次代碼上的重新閱讀,梳理了框架的點,然后對我們公司的現有的接口進行了梳理,其實我之前開源的框架沒有考慮到切換環境這個情況,實際我們公司的接口是有環境的切換,在我們的接口的測試文檔上面給了接口的url地址的變化的規律,其實針對我們的app的接口,我們就是baseurl+路徑來處理的,然后看了下我們接口文檔,對於請求頭我們公司有着自己的設計,還有對傳遞的參數我們公司的也進行的規定,我進行了梳理,梳理后,對比我的接口測試框架的進行了改造。

 

 

     關於測試環境的切換,我們的環境分為,測試環境-仿真環境-預發布環境-正式環境,對三個環境的接口的url進行研究,就是我們之前所說的baseurl+路徑 來處理的我們的接口,那么我對於環境的切換采用的就是在配置文件中配置基礎的baseurl來切換環境。關於切換環境,TesterHome 上面有一篇文檔對中國移動互聯網測試開發大會一些公司的接口測試進行了分析,其中接口測試上有提到接口測試環境切換方法  ,    可以看下這篇文章

 

 

    解決了環境切換的問題呢,接下來我們要做的就是對測試框架整體的腳本進行重構,其實主要是對一些封裝的腳本上的重構。

 

   關於requests的封裝的改進如下。

 

# -*- coding: utf-8 -*-
# @Author  : leizi
import requests,json
from  common.log import LOG,logger
@logger('請求')
class reques():
    def get(self, url,headers,params):#get消息
        try:
            r = requests.get(url, headers=headers,params=params)
            r.encoding = 'UTF-8'
            json_response = (r.json())
            return json_response
        except Exception as e:
            LOG.info('測試出錯了,原因:%s'%e)
            return {}
    def post(self, url, params,headers):#post消息
        try:
            r =requests.post(url=url,data=params,headers=headers)
            json_response = r.json()
            return json_response
        except Exception as e:
            LOG.info('測試出錯了,原因:%s' % e)
    def delfile(self,url,params,headers):#刪除的請求
        try:
            del_word=requests.delete(url=url,params=params,headers=headers)
            json_response=json.loads(del_word.json())
            return json_response
        except Exception as e:
            LOG.info('測試出錯了,原因:%s' % e)
            print('del請求出錯,原因:%s' % e)
            return {}
    def putfile(self,url,params,headers):#put請求
        try:
            data=json.dumps(params)
            me=requests.put(url,data)
            json_response=me.json()
            return json_response
        except Exception as e:
            LOG.info('測試出錯了,原因:%s' % e)
            print('put請求出錯,原因:%s'%e)
            return {}

 

 

    在改裝后的requests的后,有對其進行進一步的封裝。

 

from common.test_requests import reques
reques=reques()
def testapi(url,connent,key,fangshi):
        if fangshi=='POST'or fangshi =='post':
            me=reques.post(url=url,params=connent,headers=key)
            return me
        elif fangshi=="GET" or fangshi=='get':
            me=reques.get(url=url,headers=key,params=connent)
            return me
        else:
            pass

 

 

     有人會問我你怎么就封裝了這么幾個簡單的方法呢,其實呢,因為我們公司的就接口目前就已經能夠滿足我們基本的使用。

 

    經過改寫后,然后我有對整個框架進行了一次的調試,在調試中,發現對case的文件里面發生着不一樣,於是乎,有對case文件進行了進一步的優化,這里就不在放置case文件了,因為牽涉到公司的。  通過最后的調試,發現整體的架構已經完成,

 

    接下來就是寫用例運行框架就可以。

 

     那么我來總結下,我對接口框架的引入的過程進行了梳理。

 

        第一,用一則腳本代碼先對公司的某一接口進行測試,腳本語言為你或者你部門熟悉的。目的,了解你們公司的接口所需要的參數以及一些需要傳遞的准確的信息。

 

        第二,梳理公司整體的接口,看是否都是一類的,比如基於baseurl+路徑,請求方式。等。

 

       第三,尋找適合自己公司的接口測試開源測試框架,可以去testerhome,github等網站去找,

 

     第四  通讀框架的代碼,找出框架與公司接口測試所用到的不同點。

 

            第五,修改框架,對不同點,對於好的地方進行修改,滿足公司的接口測試工作需求,

 

            第六,增加自己想要的內容,定制化本公司特色需求

 

            第七,調試,每次腳本的開發,優化過程,一定不要忘記調試,代碼的調試很重要。

 

           第八,編寫測試用例,運用框架進行接口測試。

 

           第九,總結框架文檔,包括使用文檔,同時培訓本部門的內部使用,

 

           第十,總結整個過程,並且對老大進行匯報,及時維護跟進測試框架的使用情況。

 

           以上步驟有一定的先后順序,但是不一定都要用,這些都是我基於我自己的對開源的接口測試框架引用過程中的總結。實際情況中去改進我們的整個流程和環節。

 

 

作者寄語:

前進的道路我們充滿着迷茫,

前進的每一步我們都會有收獲。

路在腳下,我們決定不了我們的出身,但是我們可以努力改變我們未來。

告別昨天失敗的自己,努力拼搏今天,成就美好明天

 

有疑問可以加我95294386 或者我的qq群194704520

希望大家一起從菜鳥飛到更高的地方,

 

個人公眾號

 

 

有錢的也可以給我捧下

 

         

  

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM