測試項目簡介:基于python語言
跨平台的測試自動化工具,适用于背景、原生或混合型用戶端應用的測試。它支援 Android、iOS、Web、背景、雲服務和 Windows 端的 UI 自動化測試。
上手快,操作簡單,隻要有一點python基礎,打來檔案就可以直接上手。
1、測試項目的檔案目錄介紹

2、直接上實戰項目
跨平台的測試自動化工具,适用于背景、原生或混合型用戶端應用的測試。它支援 Android、iOS、Web、背景、雲服務和 Windows 端的 UI 自動化測試
在testlib中把接口封裝成增删改查四個,然後在testcase中将增删改查的接口拼接起來,組合成一條對資源進行建立、修改、查詢、删除操作的測試用例。
執行個體一:
testlib中封裝好的接口:建立 -- 修改 --查詢 --删除
@classmethod
def create(cls, body):
'''建立虛拟機資源
'''
uri = '/xxx/create'
rsp = cls.get_api(cls.host, cls.base_uri).post(uri, body=body)
print "Response:", rsp
try:
resourceId = rsp['data']['data']['result']['resourceResults'][0]['resourceId']
taskId = rsp['data']['data']['taskId']
if rsp['result_code'] == 200:
cls.wait_for_status_create(taskId, cls.taskType.Create, resourceId, cls.EnumStatus.Running)
print "虛拟機建立成功 資源id為:", resourceId
return resourceId
except Exception as msg:
raise RuntimeError(msg)
@classmethod
def get(cls, resourceId):
'''
# 查詢單個虛拟機資訊
resourceId:資源id
'''
uri = '/resources/%s' % resourceId
rsp = cls.get_api(cls.host, cls.base_uri).get(uri)
try:
if rsp['result_code'] == 200:
return rsp
except Exception as msg:
raise RuntimeError(msg, rsp)
@classmethod
def rename(cls, resourceId, name, C):
'''虛拟機修改名稱
'''
uri = '/xx/name'
data = {
"resourceId": resourceId,
"name": name,
"C": C
}
rsp = cls.get_api(cls.host, cls.base_uri).put(uri, body=data)
try:
if rsp['result_code'] == 200:
return rsp
except Exception as msg:
raise RuntimeError(msg, rsp)
return Model._solve_the_response(rsp)
@classmethod
def operate_vm(cls, B resourceId, D):
'''
!銷毀操作
uri = '/xxx/action'
data = {
"resourceIds": [resourceId],
"B": B,
"D": D,
}
rsp = cls.get_api(cls.host, cls.base_uri).post(uri, body=data)
print "Response:", rsp
try:
if rsp['result_code'] == 200:
cls.wait_for_status(resourceId, EnumStatus)
print "虛拟機操作成功 ,虛拟機目前狀态為 %s" % EnumStatus
time.sleep(10)
return
except Exception as msg:
raise RuntimeError(rsp, msg)
testcase中拼把增删改查的接口拼裝起來,組合成一條虛拟機建立/修改/查詢/删除的測試用例
@datadrive.DataDrive(testdata)
class BatchCreateAnddel_VM_TEST(TstackTestCase, Clean_resource):
'''虛拟機批量建立-批量銷毀
'''
owner = "xxxx"
timeout = 20
priority = High
status = Design
def run_test(self):
body, step_name = self.casedata
# -----------------------------建立虛拟機----------------------------------------------
self.start_step(step_name)
rsp = VM.Create(body)
resourceId = rsp['data']['result']['resourceResults'][0]['resourceId']
self.assert_equal("驗證失敗“,rsp["result_code"],200)
#---------------------------------查詢虛拟機-------------------------------------------
self.start_step("擷取Id清單中的資源情況")
VM.get_resource_by_id(VmResourceId)
#--------------------------------------修改虛拟機名稱---------------------------------
self.start_step("修改虛拟機名稱")
name, operator = self.casedata #參數化,資料驅動的方式
rsp = VM.rename(VmResourceId, name, C)
self.assert_equal("虛拟機修改名稱失敗", rsp['result_code'], 200)
# ------------------------------------------------------------------------------
self.start_step("銷毀虛拟機")
VM.operate_Batchvm(A, VmResourceId,B)
self.success_label()
if __name__ == '__main__':
BatchCreateAnddel_VM_TEST().debug_run()
pass
代碼分享完成,跑起來看看效果。
從0到1的自動化測試項目實施--第一天
輸出測試報告看看。
優點
a.測試用例包含建立人/用例等級/日期/執行次數/編号
b,測試用例可單條/多條/整個子產品批量執行
c,資料驅動模式,簡化重複的測試參數