前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Charles抓包巧转接口自动化测试用例

利用Charles抓包巧转接口自动化测试用例

作者头像
雷子
发布2021-03-15 16:12:57
9110
发布2021-03-15 16:12:57
举报
文章被收录于专栏:雷子说测试开发

在前面的文章中,也有介绍类似的工具的。例如:一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例,postman接口用例转化为python自动化测试用例 文章记录了如何把postman的测试用例转化为python的接口自动化的测试用例,那么今天呢,在来介绍,用charles抓包转为接口测试用例的方式。具体的怎么做呢,听我一一道来。

首先呢,我们启动charles抓包。打开charles设置抓包,网上教程有很多,这里不再介绍怎么设置charles抓包。我们连上charles的代理去请求对应的接口就可以。这里我们可以看到charles会抓到链接代理的所有的请求。

我们可以看到,我们录制的两个请求的接口。那么我们接下来把这个两个接口导出来。怎么导出呢。选择我们的要导出的接口,右键选择export。选择我们要保存的名称,格式选择.har格式。

接下来,我们去安装对应的python模块。开源地址:https://github.com/httprunner/har2case,对应的安装方式

代码语言:javascript
复制
pip install har2case

安装完毕后,我们可以去使用下

我们对应产生了两个接口文件,对应都转化成json。

我们看下对应的json文件。

第一个文件的json详情。

代码语言:javascript
复制
{
    "config": {
        "name": "testcase description",
        "variables": {}
    },
    "teststeps": [
        {
            "name": "/openapi/api/v2",
            "request": {
                "url": "http://openapi.tuling123.com/openapi/api/v2",
                "method": "POST",
                "headers": {
                    "Content-Type": "application/json",
                    "User-Agent": "PostmanRuntime/7.15.2",
                    "Postman-Token": "8a096b5c-425a-4cfc-bf52-75ef38f5ba76"
                },
                "json": {
                    "reqType": 0,
                    "perception": {
                        "inputText": {
                            "text": "闄勮繎鐨勯厭搴�"
                        },
                        "inputImage": {
                            "url": "imageUrl"
                        },
                        "selfInfo": {
                            "location": {
                                "city": "鍖椾含",
                                "province": "鍖椾含",
                                "street": "淇℃伅璺�"
                            }
                        }
                    },
                    "userInfo": {
                        "apiKey": "",
                        "userId": ""
                    }
                }
            },
            "validate": [
                {
                    "eq": [
                        "status_code",
                        200
                    ]
                },
                {
                    "eq": [
                        "headers.Content-Type",
                        "text/plain; charset=UTF-8"
                    ]
                }
            ]
        }
    ]
}

第二个文件。

代码语言:javascript
复制
{
    "config": {
        "name": "testcase description",
        "variables": {}
    },
    "teststeps": [
        {
            "name": "/openapi/api/v2",
            "request": {
                "url": "http://openapi.tuling123.com/openapi/api/v2",
                "method": "POST",
                "headers": {
                    "User-Agent": "PostmanRuntime/7.15.2",
                    "Postman-Token": "0a2ee535-cfd7-44d4-a1f6-2e433c9a907b"
                },
                "data": ""
            },
            "validate": [
                {
                    "eq": [
                        "status_code",
                        200
                    ]
                },
                {
                    "eq": [
                        "headers.Content-Type",
                        "text/plain; charset=UTF-8"
                    ]
                }
            ]
        }
    ]
}

这里我们拿到这两个文件,我们看下,怎么去取这些值,

我们可以看到 teststeps里面的数据是我们可以用到的,用python的json模块,去解析这个文件,拿到对应的name,reuqest的字段里面的数据,写入到我们对应的测试库,组成我们测试用例就可以,注意,部分数据需要进行清洗。

这样我们就可以将抓包的数据,写入到测试平台或者接口测试框架的数据中,就完成了。

工具辅助测试,测试利用工具。

工具带来成长,成长依靠工具。

关注雷子说测试,每天给你带来不一样的分享。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档