• 【自动化测试】第一次项目实施


    测试项目简介:基于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)
    
    1. @classmethod
    2. def get(cls, resourceId):
    3. '''
    4. # 查询单个虚拟机信息
    5. resourceId:资源id
    6. '''
    7. uri = '/resources/%s' % resourceId
    8. rsp = cls.get_api(cls.host, cls.base_uri).get(uri)
    9. try:
    10. if rsp['result_code'] == 200:
    11. return rsp
    12. except Exception as msg:
    13. raise RuntimeError(msg, rsp)
    14. @classmethod
    15. def rename(cls, resourceId, name, C):
    16. '''虚拟机修改名称
    17. '''
    18. uri = '/xx/name'
    19. data = {
    20. "resourceId": resourceId,
    21. "name": name,
    22. "C": C
    23. }
    24. rsp = cls.get_api(cls.host, cls.base_uri).put(uri, body=data)
    25.   
    26. try:
    27. if rsp['result_code'] == 200:
    28. return rsp
    29. except Exception as msg:
    30. raise RuntimeError(msg, rsp)
    31. return Model._solve_the_response(rsp)
    32. @classmethod
    33. def operate_vm(cls, B resourceId, D):
    34. '''
    35. !销毁操作
    36. uri = '/xxx/action'
    37. data = {
    38. "resourceIds": [resourceId],
    39. "B": B,
    40. "D": D,
    41. }
    42. rsp = cls.get_api(cls.host, cls.base_uri).post(uri, body=data)
    43. print "Response:", rsp
    44. try:
    45. if rsp['result_code'] == 200:
    46. cls.wait_for_status(resourceId, EnumStatus)
    47. print "虚拟机操作成功 ,虚拟机当前状态为 %s" % EnumStatus
    48. time.sleep(10)
    49. return
    50. except Exception as msg:
    51. raise RuntimeError(rsp, msg)
    testcase中拼把增删改查的接口拼装起来,组合成一条虚拟机创建/修改/查询/删除的测试用例
    1. @datadrive.DataDrive(testdata)
    2. class BatchCreateAnddel_VM_TEST(TstackTestCase, Clean_resource):
    3. '''虚拟机批量创建-批量销毁
    4. '''
    5. owner = "xxxx"
    6. timeout = 20
    7. priority = High
    8. status = Design
    9. def run_test(self):
    10. body, step_name = self.casedata
    11. # -----------------------------创建虚拟机----------------------------------------------
    12. self.start_step(step_name)
    13. rsp = VM.Create(body)
    1. resourceId = rsp['data']['result']['resourceResults'][0]['resourceId']
    2. self.assert_equal("验证失败“,rsp["result_code"],200)
    3. #---------------------------------查询虚拟机-------------------------------------------
    1.   self.start_step("获取Id列表中的资源情况")
    2.      VM.get_resource_by_id(VmResourceId)
    3. #--------------------------------------修改虚拟机名称---------------------------------
    1.  self.start_step("修改虚拟机名称")
    2.     name, operator = self.casedata #参数化,数据驱动的方式
    3.     rsp = VM.rename(VmResourceId, name, C)
    4.     self.assert_equal("虚拟机修改名称失败", rsp['result_code'], 200)
    5. # ------------------------------------------------------------------------------
    6. self.start_step("销毁虚拟机")
    7. VM.operate_Batchvm(A, VmResourceId,B)
    8. self.success_label()
    9. if __name__ == '__main__':
    BatchCreateAnddel_VM_TEST().debug_run()
        pass
    代码分享完成,跑起来看看效果。

     输出测试报告看看。

    感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

     

  • 相关阅读:
    重定向和转发
    加油站智能视频监控系统方案
    Fourier分析导论——第3章——Fourier级数的收敛性(E.M. Stein & R. Shakarchi)
    matlab里BP神经网络实现实例2汽油辛烷值预测
    GitLab CI/CD关键词(十三):创建下游流水线 trigger,引入流水线模板 include
    【SpringMVC笔记13】SpringMVC集成Freemarker模板引擎
    动态计算图笔记
    JavaScript中获取屏幕,窗口和网页大小
    快来带您了解中秋节的前世今生
    正则-贪婪模式/非贪婪模式
  • 原文地址:https://blog.csdn.net/kk_lzvvkpj/article/details/134463812