Skip to content

YuQingCiCi/my-projet

 
 

Repository files navigation

自动化框架说明


概况: 组成: Python+Pytest+Allure,外部组件:Jenkins、mysql


如何使用

  • 安装Python,版本3.9.x
  • 安装Pytest,版本< 6.1.0

运行入口:

  • runsuilt.py,其中运行需要制定运行的文件夹;# sys.argv.append("cases”),其中cases是可以根据cases的目录机结构
  • 命令行运行 pytest cases --alluredir ./report ; -allure 后面可以添加参数,具体参照allure使用方式
  • idel窗口直接运行,调试

代码组成:

  • client:接口请求类封装,目前只有get、post,后续根据需要需要playload header,目前是写死的,修改需要修改api装饰器
    def api(path=None, method=None):
        def wrapper(func):
            @functools.wraps(func)
            def _wrapper(self, **kwargs):
  • mysqlcoon:mysql的连接已经封装好,目前有query方法,后面可以根据需求添加
  • log:log类封装,本地调试为了方便可以打开log,
     #本地调试可以打开,提交代码时关掉
     #logging.root.handlers = [json_console_handler, json_file_handler]
     #默认会添加一个默认的handler,需要移除
     #logging.root.setLevel(LOG_LV)
  • utility:框架基础方法
  • apollocom:配置中心基础类,目前暂时不需要,可以直接写死
    #token = yyzx.get_yyzx_token_value
    #service_ip = yyzx.get_yyzx_ip_value
    token = "ea2389592dbe0eda59f38f6f8ebbd396"
    service_ip = "36.134.207.64:19092"
  • cases:文件夹包括test_cases和test_data,框架使用关键字驱动的概念,所以编写case时需要注意增加同名的case.py和cases.json, confest会自己去load,具体参考代码实例
  • api:定义接口请求
    class ProductClient(ApiClient):
        @post(path='/yyzx/product/catalogue/getCatalogueOne')
        def get_catalogue_one(self, id=Noe, name=None):
            """获取产品列表"""

        @get(path='/yyzx/sys/user/info')
        def user_info(self):
            """获取接口信息"""
  • basacase:封装了assert的方法,框架中可以使用两种asser风格
    assert resp.code == 200
    self.assert_equal(data.response, resp.code)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%