獲取介面引數我寫了七層 for 迴圈

Alex發表於2020-07-16

業務邏輯

  • 我們的系統查詢有級聯關係,必填輸入框有 8 個(下拉選擇式),選填另算,根據不同的維度會查到不同的資料
  • 需要對查詢條件做遍歷,將查詢到的結果記錄下來(返回狀態碼、返回結果是否為空、返回不為空的結果判斷是否正確)

具體實現

  • 根據級聯關係,將第一個下拉框的結果作為第二個下拉框的輸入···以此類推,遍歷了 8 個下拉框的內容,對內容進行全對偶的匹配,得到 8 個引數值作為一組測試用例,儲存至檔案,然後再讀取檔案獲取用例做資料驅動

程式碼邏輯

# 獲取引數
def get_data(host, file_name):
    tru_file(file_name)
    data = {}
    factoryTypes = get_factoryType()
    cutType = get_cutType()
    data["cutType"] = cutType
    for factotyType in factoryTypes:
        data["factoryType"] = factotyType
        ProductGroups = get_ProductGroup(host, factotyType)
        stepGroups = get_StepGroup(host, factotyType)
        for ProductGroup in ProductGroups:
            data["productGroup"] = ProductGroup
            productIDS = get_ProductID(host, factotyType, ProductGroup)
            for productID in productIDS:
                data["productId"] = productID
                for stepGroup in stepGroups:
                    data["stepGroup"] = stepGroup

                    stepIds = get_StepId(host, factotyType, productID, stepGroup)
                    for stepID in stepIds:
                        data["stepId"] = stepID

                        ItemTypes = get_ItemType(host, factotyType, stepID)
                        for ItemType in ItemTypes:
                            data["itemType"] = ItemType
                            items = get_Item(host, factotyType, stepID, ItemType)
                            for item in items:
                                data["item"] = item["key"]

                                param = get_param(data)
                                with open(file_name, "a", encoding="utf-8") as f:
                                    f.write(str(param) + "\n")

問題

  • 程式碼屬實不好看,想要最佳化卻又不知道怎麼合理最佳化,請教下有沒有好的方法呢

相關文章