
以企業微信API進行實戰
企業微信API官網:https://work.weixin.qq.com/api/doc

Swagger測驗流程
API管理工具:https://swagger.io/
swagger editor:可以編輯api
swagger codegen:后端用于打樁
swagger ui:查看api

介面規范:前端開發、后端開發、產品、測驗
前端開發:使用generate server生成一個stub
后端開發:使用generate client生成一個呼叫的client sdk
測驗:使用swagger ui瀏覽、了解api,自動生成基礎測驗用例并完善豐富更多用例
測驗企業微信標簽管理介面

requests庫:https://docs.python-requests.org/zh_CN/latest/
獲取corpid:

獲取corpsecret:

獲取token
r = requests.get(
"https://qyapi.weixin.qq.com/cgi-bin/gettoken",
params={"corpid": corpid, "corpsecret": corpsecret}
)
token = r.json()["access_token"]
創建標簽初步代碼框架:
import json
import requests as requests
corpid = "" # 企業id
corpsecret = ""
def test_tag_get():
"""獲取token"""
r = requests.get(
"https://qyapi.weixin.qq.com/cgi-bin/gettoken",
params={"corpid": corpid, "corpsecret": corpsecret}
)
token = r.json()["access_token"]
"""創建標簽"""
url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/add_corp_tag"
r = requests.post(
url,
params={"access_token":token},
json={
"group_id": "GROUP_ID",
"group_name": "GROUP_NAME",
"order": 1,
"tag": [{
"name": "TAG_NAME_1",
"order": 1
},
{
"name": "TAG_NAME_2",
"order": 2
}
],
"agentid" : 1000014
}
)
print(r.json())
print(json.dumps(r.json(), intent=2)) # intent=2 會讓結果間隔兩個空格
assert r.status_code == 200
assert r.json()['errcode'] == 0
現存問題:
代碼冗余
與底層框架耦合太多
封裝層次不足,不利于管理
API Object
po層:業務管理、業務功能的封裝
testcase:與底層無關,只是業務功能的呼叫
tag.py
#!/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: 資料清理程序,把測驗資料清慷訓還原
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
Tips:在Pycharm中將重復的資料創建變數的方法

最后: 可以關注公眾號:傷心的辣條 ! 進去有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測驗行業常見知識,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
在這里我向大家推薦一個自動化學習交流群,交流學習群號:914172719 里面會分享一些資深架構師錄制的測驗有關視頻錄像…
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296507.html
標籤:其他
上一篇:介面測驗常用工具及測驗方法
