接口自动化框架是如何搭建的?

1 框架文件架构

2优势:

(1)      采用的yaml作为测试用例,对测试用例做了非常严格的规范,name,request(method,url),validator,

(2)      支持多种请求方式和传参方式  Get:params,Post:表单和json传参,也支持文件上传,同时包括内置MD5,Base64,签名和加密算法

(3)      支持轻量级的接口关联,支持正则和json提取

(4)      支持热加载(在代码执行过程中自动在yaml中执行外部函数)

(5)      框架支持多种断言方式,(相等,包含,数据库断言)

(6)      框架支持基于yaml的数据驱动

(7)      框架支持多种环境切换

 

接口自动化框架YAML测试用例规范:

       一 一级关键字必须包含:name,base_url,request,validate,在一级关键字request下必须包含:method,url

       二传参方式:

              1get请求:必须通过params传参

              2post请求:传json格式,通过json传参

                                   传表单格式,通过data传参

              3文件上传: 使用files传参

       三接口关联:

              支持多种提取方式,正则表达式跟jsonpath表达式提取

              Extract:

                     Access_token:”access_token”:”(.*?)” #正则

                     Expires_in:$.expires_in  #jsonpath

              取值方式:read_extract_data是热加载的方法名,access_token是提取的变量名

       四 热加载:

              1在hotloads目录下创建一个py文件并建立一个类(自定义),然后写方法,注意返回值需要字符串就返回字符串,需要整形就返回整形

              #获得随机数,需要字符串 返回的字符串

              Def get_random(self,min,max):

                     Rm =random.randomint(int(min),int(max))

                     Return str(rm)

              2在测试用例当中传入类的对象,如DebugTalk()

              @pytest.mark.parameterize(‘caseinfo’,read_testcase_yaml(‘path’)

              Def test_create_flga(self,caseinfo):

                     Request(DebugTalk()).standard_yaml(caseinfo)

              3在YAML测试用例中调用函数,如:

              Json:{“tag”:{“name”:”测试${get_random(100,900)}”}}

       五此框架支持两种断言方式:分别是equals和contains断言

posted @ 2024-01-15 22:05  yongheng999  阅读(165)  评论(0)    收藏  举报