各位测试的小伙伴,现在主流的自动化测试实现的方式非常多,比如小伙伴已经在使用的 jmeter+ant 完成自动化测试,又或者 Apipost 这种接口测试工具完成单接口或场景的自动化测试等等,但各有优缺点,工具实现自动化的话比较方便,但也有缺点,不能定制化,只能依照工具已有的功能或插件去做,如果碰到特殊场景需要处理,工具就稍显鸡肋,但如果使用代码完成接口自动化的话,相对来说可扩展性就强一些,不管是前置、后置、SQL、测试数据制造、数据处理等等,代码的处理扩展性都是较强的,缺点就是维护成本相比较工具来说是要高一点的。
比如现在有一个场景是这样的:用户登录某系统后提示需要VIP认证才能继续使用系统,那么如何才能知晓当前用户是不是VIP并继续展示对应的VIP界面呢,仅通过 cookie判断?好像还不够。 如果接口鉴权方式是需要二次封装cookie 的话,工具好像又不太支持,但如果用代码的话,实现起来还是比较轻松的。
HOST = "http://xxx.xx.xx.xxx"
import requests
def cookies_v2():
"""
登录
return: 原生态cookie里的sessionID
"""
url = f'{HOST}/login' #登录接口地址
payload = {'username': 'zhangsan', 'password': '123456'} #请求参数
response = requests.post(url, data=payload) # 发送请求
return session_id=response.cookies['sessionid'] # 获取原生态cookie里的sessionID
def add_interface(session_id):
url = f'{HOST}/xx/xx/xxx/' #业务接口
# 二次封装、把session +token 合并成一个新的cookie
cookies_k = {"sessionid": session_id, "token": "123456"}
# 发送请求
response = requests.get(url, cookies=cookies_k)
# 获取响应信息
# 查看请求头的cookies
print(response.request.headers)
if __name__ == '__main__':
session_id= login()
add_interface(session_id)
可以看到,上面用代码进行二次封装起来还是比较方便的,但是仅写代码还是不够的,如何从0实现一个完整的接口自动化方式呢,今天这里给大家介绍一种自动化实现方式--------pytest框架+allure报告结合jenkins 完成自动化测试。
由于jenkins 内需要安装和配置许多东西,每次安装配置都比较麻烦,这里我们使用docker 去搭建jenkins 环境,搭建好了自行封装成镜像即可。
一、docker 安装 jenkins
1、如果是第一次搭建的话,首先需要一台linux 服务器or 虚拟机也可,先安装docker,安装步骤可自行根据当前的系统环境的版本进行百度安装即可,安装完docker 之后,可以使用:docker -version 检查一下docker 是否安装成功,若出现有版本信息表明已经安装成功。接下来需要使用docker 安装jenkins,输入以下命令
docker search jenkins #搜索jenkins镜像
2、搜索到了之后可以看到有比较多的jenkins镜像选择,我们能选择第二个jenkins,输入命令进行下载
docker pull jenkins/jenkins #下载jenkins镜像
3、下载完成之后,可以使用 docker images 查看当前的镜像仓库是否已经存在了刚下载的 镜像