Giter VIP home page Giter VIP logo

aomaker's People

Contributors

ae86sen avatar grassroadsz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aomaker's Issues

在项目的login.py中,因为login还不算用例就没有去执行set_session_vars(),没有set headers的缓存,导致使用none的update时报错

1.用例执行前先去调用了login的方法,这个方法里包含login接口请求;
2.然而请求时会调用cache.get("headers"),但此时还没有去执行用例导致获取到的为空
3.然而在登录接口中我传递了headers,导致会走到venv/Lib/site-packages/aomaker/base/base_api.py里的183-186行:

        if new_headers:
            headers = self._headers
            headers.update(new_headers)
            payload["headers"] = new_headers

4.由于self._headers为None,就会报错:AttributeError: 'NoneType' object has no attribute 'update'
5.所以,我建议在base_api.py的163行获取headers时,给一个默认值:{} 如:self._headers = self.cache.get('headers') if self.cache.get('headers') is not None else {} 从而规避这个问题。

api封装问题

hi,有几个比较疑惑,请教一下

  1. 接口定义时,request data是已经写好固定格式的,如文档中;
    但对于status这种list,编写testcase时有不同的request data.
    针对这种情况,我想到的是
    一种是改造当前api参数适配所有testcase
    另一种是按照数据分割yaml写测试数据包含接口url、data、断言啊之类,但这时就没必要单独去写一个api函数

想了解下在这个框架下是怎么处理的


class Instance(BaseApi):
	def get_instances(self, testdata, testdata1=None?):
        http_data = {
            "owner": self.owner,
            "action": "DescribeInstances",
            "reverse": 1,
            "其他参数": testdata / testdata1
            "status": ["pending", "running", "stopped", testdata],
        }
        resp = self.send_http(http_data)
        return resp

创建项目后执行run.py 报错:提示无allure

pip install aomaker后
aomaker create main
直接执行run.py
因无testcase所以直接结束,但是报错无allure
('allure' 不是内部或外部命令,也不是可运行的程序
或批处理文件。),
piplist里面是有allure的
是项目有问题?还是说我应该怎么做?
image

get_by_jsonpath匹配规则,未做空处理,需要优化下

在./aomaker/cache.py155行,get_by_jsonpath方法需要增加expr_index为None时,返回list数字
获取响应结果中list参数时,会引发异常
jsonpath表达式:$..id
响应结果:
{ "code": 0, "msg": "操作成功", "data": [ { "create_user": 6, "body": null, "update_user": 6, "body_type": 0, "name": "用例163625", "directory_id": 332, "id": 281, "request_type": 1, "tag": null, "created_at": "2023-12-04 16:36:25", "url": "https://www.baidu.com", "status": 3, "updated_at": "2023-12-04 16:36:25", "request_method": "GET", "priority": "P0", "deleted_at": 0, "request_headers": "{}", "case_type": 0, "base_path": null }, { "create_user": 6, "body": null, "update_user": 6, "body_type": 0, "name": "用例164214", "directory_id": 332, "id": 282, "request_type": 1, "tag": null, "created_at": "2023-12-04 16:42:14", "url": "https://www.baidu.com", "status": 3, "updated_at": "2023-12-04 16:42:14", "request_method": "GET", "priority": "P0", "deleted_at": 0, "request_headers": "{}", "case_type": 0, "base_path": null } ] }

问题错误截图:
image
image

我感觉在base_api中强制状态码400+失败有点不是很好

在site-packages\aomaker\base\base_api.py文件中,第70-98行中看到会强制判断状态码≥400时直接抛出失败,因为我们可能会对单接口进行校验,当断言状态码==400时才是用例通过,所以这里可以设计为不要进行状态码400断言吗?
image
而且这里如果400掐断了后,正常接口返回一些message就看不到了

dependence 装饰器扩展

  1. 目前 dependence 装饰器的 var_name 是一个Text字符串, 存在后置接口需要前置接口响应的90%的参数, 如果是这种情况的话,需要打n个 dependence 注解,能否支持传多个参数

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.