Python编写接口测试文档(以豆瓣搜索为例)

前言

很多人会使用postman工具,或者熟悉python,但不一定会使用python来编写测试用例脚本,postman里面可以完整的将python代码复制出来。

(以下所有内容以豆瓣网站搜索功能为例子)

一、postman接口用例转换为python测试用例

打开postman,点击右侧的</>图标,页面右边会显示脚本,顶部修改导出的语言,这边我使用的是Python-Reqyests

复制脚本,在PyCharm中打开即可,在导入使用之前如果没有reuqests库,可能会报错,我们需要安装reuqests库。

cmd命令窗口输入:pip install requests

导出后的脚本格式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import requests

url = "<https://www.douban.com/search?">

payload={'q': '三体'}

files=[

]

headers = {

  'Cookie': 'bid=5bBvkukAbvY'

}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

二、转换为pytest测试用例

1.下面就是转成pytest的测试用例

1

2

3

4

5

6

7

8

9

10

11

12

13

import requests

class TestDouban:

    def test_douban(self):

        url = "<https://www.douban.com/search?">

        payload = {'q': '三体'}

        files = []

        headers = {

          'Cookie': 'bid=5bBvkukAbvY'

        }

        response = requests.request("POST", url, headers=headers, data=payload, files=files)

        print(response.text)

三、封装POST和GET方法

在一个项目中,根路由的路径是一样的,只是不同功能对应的具体的接口不一致,且POST和GET是目前测试用例中比较通用的方法,所以可以将根路由、POST和GET方法封装成一个通用的类,后面直接调用即可。

1.common.py—公共类封装

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

import requests

class Common:

    def __init__(self):

        # 豆瓣根路由

        self.url_root = "<https://www.douban.com>"

    # get请求,uri是接口具体地址,params是get请求的参数,如果没有,默认为空

    def get(self, uri, params=''):

        # 拼凑访问地址

        url = self.url_root + uri + params

        # 通过get请求访问对应地址

        response = requests.get(url)

        # 返回request的response结果,类型为requests的Response类型

        return response

    # post请求,uri是接口具体地址,params是post请求的参数,如果没有,默认为空

    def post(self, uri, params=''):

        # 拼凑访问地址

        url = self.url_root + uri

        # 有参数,则访问对应的url,并赋值给默认参数data

        if len(params) > 0:

            response = requests.post(url, data=params)

        # 无参数,只需要访问对应的url即可

        else:

            response = requests.post(url)

        # 返回request的response结果,类型为requests的Response类型

        return response

2.具体接口测试用例

1

2

3

4

5

6

7

8

9

10

11

12

13

import requests

from common.common import Common

class TestDouban:

    def setup(self):

        self.com = Common()

    def test_douban(self):

        uri = "/search?"

        payload = {'q': '三体'}

        response = self.com.post(uri, payload)

# 由于file不需要,就将file删除了,至于hearder是否要添加可根据需求来定

执行结果如下:

 

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值