【HttpRunner学习笔记】4- HttpRunner 抽离 base_url

引言

在实际项目中,有测试环境、生成环境以及还有预发布环境,所以我们在设计业务场景的过程中,将网站的base_url或者是域名抽离出来,作为全局变量,又或者存放一个配置文件来管理也是必须要做的一项。这对后续切换环境的维护会节省一定的时间成本。不然的话,我们如果要切换环境的,要一个个替换url也是相当麻烦的工作。

1. 源码解析

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第1张图片

在每一个测试用例的main中都调用了一个test_start()方法,我们可以暂时将这个方法看作是一个入口

然后我们 ctrl+ 鼠标单击 看到test_start()的源码:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第2张图片

如上图,我们可以看到测试用例的config是传入到run_testcase方法的TestCase模型中

而实际项目中,teststeps可能存在多个Step,接下来我们来看一下Step是如何被解析:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第3张图片

测试用例的step可以看做是一个请求,那么请求是如何被访问的呢?首先通过调用__run_step方法

__run_step再调用__run_step_request

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第4张图片

接下来看到__run_step_request有一个属性url,它是使用了一个build_url来对url进行处理的,如下图:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第5张图片

build_url的源码如下:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第6张图片

2. py测试用例抽离url

首先我们需要在config属性调用Config类的base_url方法,传入要访问的base_url

比如:http://www.woshipm.com/api2/user/followings/status

这里的base_url指的是http://www.woshipm.com,也就是路径之前的域名,也可以是IP

然后将teststeps列表中Step.get()base_url给去掉,httprunner会自动拼接;

没有抽离base_url:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第7张图片

抽离后:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第8张图片

由此可以看到 .get()base_url也就是域名http://www.woshipm.com被提取到configbase_url

3. yml测试用例抽离url

直接将url项的域名提取到config子级的base_url即可;

剪切url的域名:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第9张图片

config添加一个base_url标签:

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第10张图片

4. base_url抽离到.env文件中

HttpRunner创建项目时自动生成一个.env文件,我们可以将base_url放到.env文件中,如下:

base_url=http://www.woshipm.com

然后在测试用例woshipm_get_author_test.py文件中引用:

config = Config("testcase description").verify(False).base_url("${ENV(base_url)}")

【HttpRunner学习笔记】4- HttpRunner 抽离 base_url_第11张图片

你可能感兴趣的:(HttpRunner学习笔记,抽离base_url,httprunner)