前言
最近学习完了requests、pytest,实践出真知。下面以禅道为例。docker方式搭建禅道
一、Pycharm中创建项目结构
1.新建一个工程,工程名称自己定义,如:zentao
2.在工程的根目录下新建一个conftest.py(测试用例的一些fixture配置)和pytest.ini(改变pytest的运行方式)
3.在工程下创建以下package包:
--case:这个包放test开头的测试用例,也可以放一些非test开头的封装接口方法
--common:这个包放一些公共的方法,如:读取excel文件方法,读取mysql、oracle的脚本
--config:放一些配置文件,如邮箱的一些参数:收件人,发件人,密码等
4.在工程下创建以下文件夹:
--logs:这里存放日志信息
--report:这里存放测试报告
二、开始写脚本
思考:1.登录之后,需要提bug,然后操作bug,如何保持登录了?s=requests.session()可以实现保持会话;
2.假如登录,提bug,操作bug,都写在一个.py文件,可以使用s.get(...),s.post(...)操作所有请求,那若是这些操作在不同的.py文件呢?fixture自定义测试用例前置条件可以实现; 作用范围session(多个文件调用一次,可以跨.py文件调用),conftest.py文件在当前所在目录及以下目录生效;
3.若是请求地址写死,线下线上切换不方便,怎么办?当然fixture可以搞定了
2.1 由此,conftest.py脚本的内容确定了,如下:
#注意这里的ip改为自己服务器的ip哦
#conftest.py
import requests
import pytest
@pytest.fixture(scope="session")
def s():
ss=requests.session()
return ss
@pytest.fixture(scope="session")
def host():
host="http://47.98.66.11:8899"
return host
2.2 编写登录的脚本
# coding:utf-8
#test_login.py
import re
import pytest
import hashlib
import allure
@allure.severity("blocker")
@allure.epic("禅道登录,增删改查测试")
@allure.feature("禅道登录")
@allure.issue("http://47.98.66.11:8899/bug-browse-1-0-all.htm