编写http接口api及接口自动化测试

片言

此文中代码都是笔者工作中源码,所以不会很完整,主要摘常见场景的api片段用以举例说明

另:此文主要针对自动化测试人员,尤其有python基础阅读更佳。

笔者使用 python3.6 + postgresql10 + flask 0.12 的环境

场景介绍 

我们要实现后台管理中的用户管理功能,实现对用户的增、修改、删除、查询操作。

文中场景省去登录和用户权限部分,但我会在接口代码片段中进行注释说明

接口:新增用户

(定义访问的http链接地址,以及请求使用的 method)    http://127.0.0.1:7070/guardian/users


@app.route('/guardian/users', methods=['POST'])    # 使用 POST 方法
@require_role('guardian_admin')    # 登录用户的角色权限必须是guardian_admin 此处是自定义的更角色管理中的设置管理员角色一致即可。不需要角色权限也可以注释此行即可
@login_required    # 验证用户登录 flask_login插件
def create_user():
    '''
    下面json串是新增时候前台表单提交的内容以及格式,也就是我们接口测试时候需要添加的测试数据
    {
            "user": {
                "domain_id": "default",
                "enabled": True,
                "name": "tsbc1",
                "password": "111111",
                "realname": "Ray",
                "email": "tsbc@vip.qq.com",
                "tel": "+86-029-88880000",
                "phone": "13800138000",
                "org_id": "7d22d25a-b648-4ad3-a834-2398eb989a9e",
                "org_array":[],
                "comments": "备注信息"
            }
        }
    '''
    try:
        domain_id = None
        user_name = None
        user_passwd = None
        project_id = None
        real_name = None
        email = None
        phone = None
        org_id = None
        org_array = None
        comments = None
        try:
            # 接收前端请求数据,并使用json.loads 把数据转换成Python可以读格式
            resq_obj = request.data
            resq_json = None
            if type(resq_obj) is bytes:
                resq_json = resq_obj.decode()
            else:
                resq_json = resq_obj
            user_obj = jsonpickle.loads(resq_json)    # 此处使用了jsonpickle的lib,使用json lib也是一样的
            logging.debug('create user {0} '.format(user_obj))
            if 'default_project_id' in user_obj['user']:
                project_id = user_obj['user']['default_project_id']

            domain_id = user_obj['user']['domain_id']
            user_name = user_obj['user']['name']
            user_passwd = user_obj['user']['password']

        except Exception as ee:
            abort(400)
            #raise ee

        if domain_id is not None and user_name is not None and user_passwd is not None:
            # 笔者使用 keystone 进行用户管理 此处在keystone创建帐号,然后获取id,把id及其它信息会存放在自定义的数据库表中
            resp = usermgt.create_user(domain_id, user_name, user_passwd, project_id)    # resp返回值是 dict 格式
            if 'id' in resp['user']:
                try:
                    # 把前端POST的表单值进行变量赋值 传给后台进行存库
                    user_id = resp['user']['id']
                    if 'realname' in user_obj['user']:
                        real_name = user_obj['user']['realname']
                    if 'email' in user_obj['user']:
                        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apipost是一个适合学习和进行接口测试的工具,它提供了简单易上手的中文界面。它主打协同研发,可以高效完成接口自动化测试,帮助测试人员不再需要加班来完成测试工作。同时,Apipost也适合每一个接触到接口的程序员,让每一位程序员都能告别加班内耗。\[1\] 在Apipost中,你可以通过以下步骤进行接口自动化测试: 1. 在API设计或API调试内保存接口。 2. 打开自动化测试-测试用例,新建一个测试计划。 3. 在右侧的API添加器内添加接口,从下方的控制器菜单里添加控制器。 4. 设置好执行条件,包括测试环境、测试数据、执行次数、间隔时间、遇到错误是否继续执行、是否开启沙盒模式,并点击保存并执行。 5. 查看返回的测试接口以及断言详情。\[2\] Apipost提供了条件控制器、次数控制器、while控制器、等待控制器、全局断言、脚本等6种控制方式,覆盖了90%的测试场景。这意味着测试人员可以不需要编写代码,就能完成自动化测试。只需要根据接口文档,选择对应的控制方式,就可以执行自动化测试。\[3\] #### 引用[.reference_title] - *1* *3* [Apipost自动化测试功能详解](https://blog.csdn.net/phpwechat/article/details/128146912)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用ApiPost进行接口自动化测试](https://blog.csdn.net/qq_37515374/article/details/129296218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值