介面測試:介面測試是測試系統元件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。(來自某百科)
筆者看了,對於介面測試還是一知半解,就像你要了解飯一樣,你只了解從超市買回來,放進電飯煲,然後就等待飯好就行了??
你不需要知道大公尺是怎麼來的嗎?
同理,如果你想要測試好介面,那麼你肯定需要知道介面是怎麼被製造出來的,他的原理是怎麼樣的呢?
其中實用到:flask,flask-restful。這些讀者都可以使用pip進行安裝。
資料庫用的是sqlite3。
首先我們需要建立資料:
1、建立資料庫:test
2、在資料庫中建立一張表:stu
3、建立二個字段:name(ps:這裡設定成不能重複,當然現實中是可以重複的,這裡只作為演示用。)、age(年齡)
表如圖:
既然有了資料庫,那麼我們肯定需要對資料庫存進行增刪除改查。因此筆者封裝了乙個資料庫操作的類。
import注:1、make_dicts 這個方法是為了讓我們在查詢資料的時候,返回給我們的結果,以字典的形式返回。其中key是列名,value是我們查詢的值。sqlite3
#將游標獲取的元組根據資料庫列表轉為字典表
defmake_dicts(cursor, row):
return dict((cursor.description[i][0], value) for i, value in
enumerate(row))
class
sqlhelper(object):
def__init__
(self):
self.path = r"
e:\test\test.db"#
開啟資料庫連線
defget_db(self):
db =sqlite3.connect(self.path)
db.row_factory =make_dicts
return
db
#執行sql語句,但不返回結果
def execute_sql(self, sql, prms=()):
c =self.get_db().cursor()
c.execute(sql, prms)
c.connection.commit()
#執行用於選擇資料的sql語句。
def query_sql(self, sql, prms=(), one=false):
c =self.get_db().cursor()
result =c.execute(sql, prms).fetchall()
c.close()
return (result[0] if result else none) if one else
result
db = sqlhelper()
2、類裡面封裝了二個方法,其中乙個執行不返回結果,乙個是返回結果的。返回結果的有乙個引數one。預設為false,指返回所有資料。如果為true則返回第一條資料。
接下來,我們就正式開始介面的開發了,這裡我們開發二個介面:
1、查詢學生資訊
path:'/get/stu/'
parameter :name (學生的名字,不能為空)
2、新增學生到資料庫
path:'/add/stu/'
parameter:name(學生的名字,不能為空)
age(學生的年齡,不能為空)
from flask import這樣,我們的介面就開發完成了,接下來大家就可以在前端呼叫這些介面,來增加和查詢資料了。flask, jsonify
from flask.ext.restful import
reqparse, api, resource
from db importdb)
parser_get =reqparse.requestparser()
parser_get.add_argument(
'name
', type=str, required=true, help='
名字不能為空。')
#此方法主要是為了判斷是否有重名資料
defis_data(name):
sql = "
select * from stu where name = ?
"return
db.query_sql(sql,(name,))
class
get_stu(resource):
defget(self):
data =parser_get.parse_args()
name = data.get('
name')
ifis_data(name) :
return
jsonify(is_data(name))
return jsonify()
parser_add =reqparse.requestparser()
parser_add.add_argument(
'name
', type=str, required=true, help='
名字不能為空。')
parser_add.add_argument(
'age
',type = int ,required=true, help = '
年齡不能為空')
class
add_stu(resource):
defpost(self):
data =parser_add.parse_args()
name = data.get('
name')
age = data.get('
age'
)
ifis_data(name):
return jsonify()
sql_i = "
insert into stu(name,age) values (?,?)
"db.execute_sql(sql_i,(name,age))
return jsonify()
api.add_resource(get_stu,
'/get/stu/')
api.add_resource(add_stu,
'/add/stu/')
if__name__ == '
__main__
':
見效果:
新增乙個叫bokeyuan的人:
然後我們再查詢一下這個人:
見資料庫中的表:
是不是完美的實現了查詢和新增的功能。
增刪改查,我們實現了增和查,還有改和刪,這些有興趣的朋友可以試一下。
機器學習,你首先得知道這十個知識點
1.機器學習意味著從資料中學習,而ai呢是乙個比較炫酷時髦的詞。機器學習基於這樣的假設 我們可以通過將正確的資料放到正確的演算法中去訓練解決一系列複雜的問題。當你需要融資或者發布產品的時候可以毫不猶豫的稱之為人工智慧 ai 但是你心裡需要明白現在ai是乙個幾乎可以代表一切時髦用詞。2.機器學習包括資...
你如何拼寫測試
你如何拼寫測試 陳能技 2007 8 24 原文 how do you spell testing?a mnemonic to jump start testing james bach et測試 exploratory testing 強調測試設計和執行同步進行。但是我們如何組織我們的思想以便我們...
如何進行介面測試?如何設計介面測試用例?
1 引數入參型別校驗 入參型別與介面文件保持一致。2 引數必填項校驗 必填項不為空 null 3 引數長度 a 介面文件記錄的資料庫長度 b 需求文件要求的字段長度 4 引數取值範圍 a 列舉值,需校驗每個列舉值。特別是不同列舉值對應不同場景的情況 b 有限定範圍,可用邊界值進行設計測試用例。如密碼...