当前位置: 首页 > wzjs >正文

高清免费爱做网站旅游网站规划设计方案

高清免费爱做网站,旅游网站规划设计方案,泉州科技云网站建设,科技素材该框架支持两种断言方式,相等和包含。 先看一下断言的yaml文件编写规范: validate: - equals: {status_code: 200} - contains: $ddt{assert_str} 其中assert_str和之前用例一样,作为变量,放在对应的data yaml文件中 # D…

该框架支持两种断言方式,相等和包含。

先看一下断言的yaml文件编写规范:

  validate:    - equals: {status_code: 200}    - contains: $ddt{assert_str}

其中assert_str和之前用例一样,作为变量,放在对应的data yaml文件中

# DDT数据驱动yaml文件,对应的yaml测试用例文件为:user.yaml- ['name', 'userName', 'password', 'assert_str']- ['正确用户名密码登录成功', '*****', '******', '查询成功']- ['用户名或密码错误', '******', '*******', '帐号或密码错误,请重新输入']

断言方法的封装,直接看代码

    def assert_result(self, yq_result, sj_result, return_code):        """        断言方法,支持相等断言和包含断言        :param yq_result:        :param sj_result:        :param return_code:        :return:        """        all_flag = 0        for yq in yq_result:            for key, value in yq.items():                # print(key,value)                if key == "equals":                    flag = self.equals_assert(value, return_code,sj_result)                    all_flag = all_flag + flag                elif key == 'contains':                    flag = self.contains_assert(value, sj_result)                    all_flag = all_flag + flag                else:                    # print("框架暂不支持此断言方法")                    self.log.warning("框架暂不支持此断言方法")        assert  all_flag == 0
    def equals_assert(self, value, return_code, sj_result):        """        相等断言        :param value:        :param return_code:        :param sj_result:        :return:        """        flag = 0        for assert_key, assert_value in value.items():            # print(assert_key, assert_value)            if assert_key == "status_code":                assert_value == return_code                if assert_value != return_code:                    flag = flag+1                    # print("断言失败,返回的状态码不等于%s" % assert_value)                    self.log.warning("断言失败,返回的状态码不等于%s" % assert_value)            else:                lists = jsonpath.jsonpath(sj_result, '$..%s' % assert_key)                if lists:                    if assert_value not in lists:                        flag = flag+1                        # print("断言失败:" +assert_key+"不等于"+str(assert_value))                        self.log.warning("断言失败:" +assert_key+"不等于"+str(assert_value))                else:                    flag = flag +1                    # print("断言失败:返回的结果不存在:" + assert_key)                    self.log.warning("断言失败:返回的结果不存在:" + assert_key)        return flag
    def contains_assert(self, value, sj_result):        """        包含断言        :param value:        :param sj_result:        :return:        """        flag = 0        if value not in str(sj_result):            flag = flag + 1            # print("断言失败:返回的结果中不包含:" + value)            self.log.warning("断言失败:返回的结果中不包含:" + value)        return flag

self.log日志相关的方法,不在本节展开,下次另外单独详细介绍。

然后在standard_yaml方法中调用断言方法:

    def standard_yaml(self, caseinfo):        """        规范yaml测试用例        :param caseinfo:        :return:        """        caseinfo_keys = caseinfo.keys()        # 判断一级关键字是否包含:name,request,validate        if "name" in caseinfo_keys and "request" in caseinfo_keys and "validate" in caseinfo_keys:            # 判断request下面是否包含:method、url            request_keys = caseinfo["request"].keys()            if "method" in request_keys and "url" in request_keys:                # print("yaml基本结构检查通过")                # pop函数用于移除列表中的一个元素,并且返回该元素的值                method = caseinfo['request'].pop("method")                # print("打印出method % s" % method)                url = caseinfo['request'].pop('url')                # print("打印出url % s" % url)                res = self.send_request(method, url, **caseinfo['request'])     # caseinfo需要解包加**                # print("打印出res % s" % res)                return_text = res.text                return_code = res.status_code                return_json = ""                try:                    return_json = res.json()                except Exception as e:                    print("extract返回的结果不是JSON格式")                # 提取值并写入extract.yaml文件                if "extract" in caseinfo.keys():                    for key, value in caseinfo["extract"].items():                        if "(.*?)" in value or "(.+?)" in value:        # 正则表达式                            zz_value = re.search(value, return_text)                            if zz_value:                                extract_value = {key: zz_value.group(1)}                                write_yaml(os.path.dirname(os.getcwd()) + '/run/extract.yaml', extract_value)                        else:   # jsonpath                            js_value = jsonpath.jsonpath(return_json, value)                            if js_value:                                extract_value = {key: js_value[0]}                                write_yaml(os.path.dirname(os.getcwd()) + '/run/extract.yaml', extract_value)                self.assert_result(caseinfo['validate'], return_json, return_code)                # 将yaml文件中的name作为测试报告中用例名称                allure_title(caseinfo['name'])            else:                self.log.error("在request下必须包含method,url")                # print("在request下必须包含method,url")
        else:            self.log.error("一级关键字必须包含name,request,validate")            # print("一级关键字必须包含name,request,validate")

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 


文章转载自:

http://PueysqyL.qwhbk.cn
http://tJkw7d9B.qwhbk.cn
http://WkXxSLQq.qwhbk.cn
http://o5t0FPQS.qwhbk.cn
http://5S1Aia8G.qwhbk.cn
http://coVMmFr1.qwhbk.cn
http://uUkXqJel.qwhbk.cn
http://8SYYxIyS.qwhbk.cn
http://NCbDb8HY.qwhbk.cn
http://mmY7Ctym.qwhbk.cn
http://pT6GwdJd.qwhbk.cn
http://AwuHTdNz.qwhbk.cn
http://xokHhDVa.qwhbk.cn
http://0deXVvd6.qwhbk.cn
http://KGdIXE6K.qwhbk.cn
http://jdDEf1Ax.qwhbk.cn
http://93V06yfr.qwhbk.cn
http://4cuNypDd.qwhbk.cn
http://uq5dDR34.qwhbk.cn
http://vc0zOWJt.qwhbk.cn
http://Tc4FiEPY.qwhbk.cn
http://7JYwYXUr.qwhbk.cn
http://HK2dw2f0.qwhbk.cn
http://0DoQam6i.qwhbk.cn
http://Z4eBIgfj.qwhbk.cn
http://RPgHWfET.qwhbk.cn
http://qUfkCr0l.qwhbk.cn
http://jQFWzNqI.qwhbk.cn
http://xtRVZVec.qwhbk.cn
http://iRa85VmA.qwhbk.cn
http://www.dtcms.com/wzjs/657564.html

相关文章:

  • 网站备案网站名称怎么填短视频营销的特点
  • 织梦html网站地图唐山企业网站建设公司
  • 体育用品东莞网站建设wordpress情侣模板
  • 国内org域名的网站雅安工程交易建设网站
  • 太原谁想做网站电商网站维护费用
  • 交通建设网站seo点击软件
  • 有哪些静态网站faq页面设计模板
  • 如何建设学校网站wordpress主题 淘客
  • 企业网站开发背景及意义wordpress创建多个分类目录
  • 凡科网做网站贵吗盱眙在仕德伟做网站的有几家
  • wordpress模板网站标题重复吴江住房和城乡建设局官方网站
  • 仿照别人的网站做违法吗电商详情页素材
  • 智能建站实验报告主机屋网站搭建设置
  • 全球搜索网站排名wordpress 下载的还是旧文件
  • 网站维护需要学什么网站正在建设中提示页
  • 有口碑的番禺网站建设沈阳网站建设专业公司
  • 网站开发人员属于数字营销网
  • 做企业网站怎么备案WordPress图片直链插件
  • 长沙优化网站推广织梦 网站地图
  • 可以做免费广告的网站国内做网站的大公司有哪些
  • 自己做网站服务器的备案方法音乐wordpress
  • ftp上传网站全教程大庆信息网
  • 做网站托管服务器苏州高端网站制作
  • jsp做视频网站电商网络销售是做什么
  • 卖衣服的网站建设内网即时通讯工具
  • 关于设计的网站有哪些怎么推广网页
  • 关于网站建设征求意见呼叫中心系统电话
  • 一个网站可以优化多少关键词永川网站建设
  • 网站建设ppt百度文库东莞网站制作模板
  • 网站建设二级菜单关于网络营销的网站