企業微信介面測試實戰、Swagger簡介

專注的阿熊發表於2021-09-01

#!/user/bin/env python

# -*- coding: utf-8 -*-

import json

import requests

corpid = "" # 企業 id

corpsecret = ""

class Tag:

     def __init__(self):

         self.token = ""

     def get_token(self):

         """ 獲取 token"""

         r = requests.get(

             "https://qyapi.weixin.qq.com/cgi-bin/gettoken",

             params={"corpid": corpid, "corpsecret": corpsecret}

         )

         self.token = r.json()["access_token"]

     def list(self):

         """ 獲取 tag 列表 """

         r = requests.get(

             "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_corp_tag_list",

             params={"access_token=": self.token},

             json={

                 "tag_id":[]

             }

         )

         print(json.dumps(r.json(), intent=2))  # intent=2 會讓結果間隔兩個空格

         return r

     def add(self, group_name, tags):

         url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/add_corp_tag"

         r = requests.post(

             url,

             params={"access_token": self.token},

             json={

                 "group_id": "GROUP_ID",

                 "group_name": group_name,

                 "order": 1,

                 "tag": tags,

                 "agentid": 1000014

             }

         )

         # print(r.json())

         print(json.dumps(r.json(), intent=2))  # intent=2 會讓結果間隔兩個空格

         return r

test_tag.py

#!/user/bin/env python

# -*- coding: utf-8 -*-

import pytest

from Exercises.service.tag import Tag

# todo: 程式碼冗餘

# todo: 與底層架構耦合太多

# todo: 封裝層次不足,不利於管理

class TestTag:

     def setup_class(self):

         # todo: 外匯跟單gendan5.com 資料清理過程,把測試資料清空或還原

         self.tag = Tag()

         self.tag.get_token()

     def test_tag_list(self):

         """ 獲取標籤列表 """

         r = self.tag.list()

         assert r.status_code == 200

         assert r.json()["errcode"] == 0

     @pytest.mark.parametrize("group_name, tag_names", [

         ["group1", [{"name": "tag1"}]],

         ["group2", [{"name": "tag2"}, {"name": "tag3"}]]

     ])

     def test_tag_get(self, group_name, tag_names):

         # todo: 完善功能測試

         """ 建立標籤 """

         r = self.tag.add(group_name=group_name, tags=tag_names)

         assert r.status_code == 200

         assert r.json()['errcode'] == 0

         """ 校驗列表 """

         r = self.tag.list()

         assert r.status_code == 200

         assert r.json()["errcode"] == 0

         group = [group for group in r.json()["tag_group"] if group["group_name"] == group_name][0]

         tags = [{"name": tag['name']} for tag in r.json()["tag"]]

         print(group)

         print(tags)

         assert group['group_name'] == group_name

         assert tags == tag_names

     def test_tag_fail(self):

         pass


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2789920/,如需轉載,請註明出處,否則將追究法律責任。

相關文章