自动化测试第二节课

网络概念

  • 客户端
  • 服务端
  • 请求:
    客户端向服务器获取数据的一种行
  • 响应
  • 服务器对客户端对请求做出的反应,一般指返回数据给客户端

http协议

1.http协议与https概念:为服务端与客户端答应
2.网站的URL会分为两部分:通信协议和域名地址
3.HTTP是一种使用明文数据传输的网络协议
4.HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。

1.png
  • 上述为GET方法的请求行


    2.png

    从上至下

  • 客户能处理的类型
  • 优先的压缩方法
  • 中文的语言
  • 持久连接
  • cookie 保存用户信息,在开发中通常与session一起用
  • 主机地址
状态码  状态描述    解释

200        OK                     客户端请求成功
204        No Content        请求成功,但没数据可返回
206        Partial Content  对资源某一部分的请求
400        Bad Request     客户端请求有语法错误,不能被服务器所理解
401        Unauthorized    需要http认证信息, 如已进行过一次请求, 则表示用户认证失败
403        Forbidden         接收到请求, 但不允许访问那资源
404        Not Found        服务器上没有请求的资源, url错误
500        Internal Server Error      服务器内部资源发生错误
503        Serveice Unavailable      服务器暂时处于超负载

TCP/IP协议族:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层

获取DNS地址 ipconfig
手动DNS设置 以太网 114 114 114 114
8 8 8 8 8
GET方法无请求体,一般作为不太重要内容的请求方法。

# pip install requests
import requests
import re

# 1.确定url地址
url = 'https://www.doutula.com/photo/list/?page=2'

# 1.2 设置ua
ua = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}

# 2.请求
result = requests.get(url, headers=ua).content.decode()

# 查看支持的格式类型.
# result = requests.get(url, headers=ua).headers['content-type']

# 查看ua
# result = requests.get(url, headers=ua).request.headers
# print(result)
# 显示状态码
# result = requests.get(url, headers=ua).status_code
#
# print(result)


# # 3.删选数据   .*?    . 通配符号,只匹配一个  *后面的按照前面的方式去匹配.  ? 是非贪婪符号
image_urls = re.findall('data-original="(.*?)"', result)
# print(image_urls)
for image_url in image_urls:
    # print(image_url)

    image_name = image_url.split('/')[-1]
    print(image_name)

    image = requests.get(image_url).content
#
# # 4.保存数据
    with open('./image/%s' % image_name, 'wb') as file:
        file.write(image)

POST方法比GET方法更安全,有请求体,一般作为重要信息的请求方法

# 1.3 设置请求体  在页面的FORM data中
data = {
    'color': '16777215',
    'fontsize': '25',
    'mode': '1',
    'msg': '666',
    'rnd': '1590672609',
    'roomid': '73356',
    'bubble': '0',
    'csrf_token': 'adf0c7e476e27e0d13c1ae8448611775',
    'csrf': 'adf0c7e476e27e0d13c1ae8448611775'
}

API接口

api接口,一般把url就看成是接口,url里面要传对应的字段,就是接口字段,拿手机短信验证码接口来说,其中配置项要传入初始化client,apikey作为所有请求的默认值,发送的信息及手机号。

接口和客户端功能测试的关系

  • 客户端通过调用服务端提供的接口来获取数据
  • 客户端功能测试过程中需要和接口交互的场景
    1.客户端测试过程发现bug, 需要排查是客户端代码问题还是服务端代码问题
    2.客服端借助接口调用生成一些放回数据,辅助客户端接口测试
    3.跳过客户端代码的验证限制直接访问服务端
    4.仿真弱网环境,进行弱网测试
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。