peipei-Study

自动化测试要满足四个条件:

     1 - 自动化用例能够完成所有测试步骤   -------- postman不支持  没有完整的用例管理系统

     2 - 每个用例的输入数据,必须要自动填入  -------- postman支持

     3 - 每个用例的结果检查,必须可以用代码自动完成   ------ postman支持

     4 - 具备环境初始化和清除功能  ------   postman不支持  postman受到沙盒限制并不能任意引用第三方库

python语言也可以实现web api接口测试。主要是构造出相应的http请求。

               * 内置库有 httplib    urllib2

               * 第三方库 urllib3    requests   pyCurl

因此,要想进行接口自动化,我们就来了解下Request库。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Requests库:第三方库,简单易用、功能强大,是python实现的最简单易用的HTTP库。

      需要手动安装: pip  install  requests   提示successful即安装成功,模块requests就可以使用了   import  requests

  构建各种http请求:

         requests.get(\'htpps://api.github.com/events\')  ---------   http.get请求

         requests.post(\'http://httpbin.org/post\', data={\'key\':\'value\'})    ----------- http.post请求

         requests.put(\'http://httpbin.org/put\', data={\'key\':\'value\'})  ------------ http.put请求

         requests.delete(\'http://httpbin.org/delete\')    ------------  http.delete请求

  构建URL参数:

         payload = {\'key1\':\'value1\', \'key2\':\'value2\'}

         requests.get(\'http://httpbin.org/get\', params=payload)

  构建请求头: 

         只需要简单的传递一个字典给headers参数就可以了,如:

         h = {\'User-Agent\': \'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36....\'}

         requests.get(url, headers=h, params=payload) 

  定制请求体:

         ① 请求体类型 Content-Type:   application/x-www-form-urlencoded

         只需要简单的穿衣一个字典给data参数就可以了,如:

         payload1 = {‘action’: \'add_course\',

                          \'data\':\'\'\'{

                                 \'name\':\'数学\',

                                  \'desc\':\'数学课程\',

                                  \'display_idx\': \'4\'

                          }\'\'\'

                 }

         resp  = request.post(url, data=payload1)

         ② 请求体类型 Content-Type:  application/json

         可以将字典直接传递给json参数  如:

         payload2 = {‘action’: \'add_course\', \'data\':{ \'name\':\'数学\',  \'desc\':\'数学课程\',  \'display_idx\': \'4\'}}

         resp = requests.post(url, json=payload2)

  查看响应内容:  

         先获取到响应对象resp =  requests.post(url, data=payload)  就可以查看服务器返回的各种消息内容

         查看响应头   ----- resp.headers

         查看响应体   ----- resp.text

         如果响应体恰巧是json格式   resp.json()   自动把json格式的字符串转成python对象,通常都是字典类型。

         那么再获取字典里面具体的值就好操作了。如:

             retObj = resp.json()

             if  retObj[\'retcode\'] == 0:

                       print(\'pass\')

             else:

                       print(retObj[\'retcode\'])                                                    

分类:

技术点:

相关文章:

  • 2022-03-02
  • 2021-04-06
  • 2022-12-23
  • 2021-12-21
  • 2021-11-25
  • 2022-12-23
  • 2021-09-18
猜你喜欢
  • 2022-12-23
  • 2021-10-27
  • 2022-12-23
相关资源
相似解决方案