测试项目简介:基于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:", rsptry: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为:", resourceIdreturn resourceIdexcept Exception as msg:raise RuntimeError(msg)
@classmethod
def get(cls, resourceId):'''# 查询单个虚拟机信息resourceId:资源id'''uri = '/resources/%s' % resourceIdrsp = 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:", rsptry:if rsp['result_code'] == 200:cls.wait_for_status(resourceId, EnumStatus)print "虚拟机操作成功 ,虚拟机当前状态为 %s" % EnumStatustime.sleep(10)returnexcept Exception as msg:raise RuntimeError(rsp, msg)
testcase中拼把增删改查的接口拼装起来,组合成一条虚拟机创建/修改/查询/删除的测试用例
@datadrive.DataDrive(testdata)
class BatchCreateAnddel_VM_TEST(TstackTestCase, Clean_resource):'''虚拟机批量创建-批量销毁'''owner = "xxxx"timeout = 20priority = Highstatus = Designdef 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 代码分享完成,跑起来看看效果。
输出测试报告看看。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取