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

角门网站建设福州网站建设培训

角门网站建设,福州网站建设培训,学做网站的基本,苏州seo门户网前言#xff1a; 接口自动化是指模拟程序接口层面的自动化#xff0c;由于接口不易变更#xff0c;维护成本更小#xff0c;所以深受各大公司的喜爱。 接口自动化包含2个部分#xff0c;功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种#xff0c…前言 接口自动化是指模拟程序接口层面的自动化由于接口不易变更维护成本更小所以深受各大公司的喜爱。 接口自动化包含2个部分功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种功能性的接口自动化框架。 一、简单介绍 环境Mac、Python 3PytestAllureRequest pytest3.6.0 pytest-allure-adaptor1.7.10(弃用) pytest-rerunfailures5.0 configparser3.5.0 PyYAML3.12 requests2.18.4 simplejson3.16.0 ---------------------------------------- 2020-4-30更新 pytest5.3.1 allure-pytest2.8.6 allure-python-commons2.8.6 ⚠️注pytest-allure-adaptor已弃用改为allure-pytest 安装allure-pytest时需将pytest-allure-adaptor卸载 流程读取Yaml测试数据-生成测试用例-执行测试用例-生成Allure报告 模块类的设计说明: Request.py 封装request方法可以支持多协议扩展get\post\put Config.py读取配置文件包括不同环境的配置email相关配置 Log.py 封装记录log方法分为debug、info、warning、error、critical Email.py 封装smtplib方法运行结果发送邮件通知 Assert.py 封装assert方法 run.py 核心代码。定义并执行用例集生成报告 Yaml测试数据格式如下 --- Basic:dec: 基础设置parameters:-url: /settings/basic.jsondata: slugda1677475c27header: {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko)\Chrome/67.0.3396.99 Safari/537.36,Content-Type: keep-alive} 二、代码结构与框架流程 1、代码结构见下图 代码结构.png 2、框架流程见下图 框架流程.jpg  三、详细功能和使用说明 1、定义配置文件config.ini 该文件中区分测试环境[private_debug]和正式环境[online_release]分别定义相关配置项[mail]部分为邮件相关配置项 # http接口测试框架配置信息[private_debug] # debug测试服务 tester your name environment debug versionCode your version host www.jianshu.com loginHost /Login loginInfo emailwanguser.compassword123456[online_release] # release正式服务 tester your name environment release versionCode v1.0 host www.jianshu.com loginHost /Login loginInfo emailwanguser.compassword123456[mail] #发送邮件信息 smtpserver smtp.163.com sender test1163.com receiver wanguser.com username wanguser.com password 123456 2、读取yaml测试数据后封装 yaml测试数据例子见第一节一条接口可定义多条case数据get_parameter为已封装好的读取yaml数据方法循环读取后将多条case数据存在list中。 class Basic:params get_parameter(Basic)url []data []header []for i in range(0, len(params)):url.append(params[i][url])data.append(params[i][data])header.append(params[i][header]) 3、编写用例 class TestBasic:allure.feature(Home)allure.severity(blocker)allure.story(Basic)def test_basic_01(self, action):用例描述未登陆状态下查看基础设置conf Config()data Basic()test Assert.Assertions()request Request.Request(action)host conf.host_debugreq_url http:// hosturls data.urlparams data.dataheaders data.headerapi_url req_url urls[0]response request.get_request(api_url, params[0], headers[0])assert test.assert_code(response[code], 401)assert test.assert_body(response[body], error, u继续操作前请注册或者登录.)assert test.assert_time(response[time_consuming], 400)Consts.RESULT_LIST.append(True) 4、运行整个框架run.py if __name__ __main__:# 定义测试集args [-s, -q, --alluredir, xml_report_path]self_args sys.argv[1:]pytest.main(args)cmd allure generate %s -o %s % (xml_report_path, html_report_path)try:shell.invoke(cmd)except:log.error(执行用例失败请检查环境配置)raisetry:mail Email.SendMail()mail.sendMail()except:log.error(发送邮件失败请检查邮件配置)raise 5、err.log实例 [ERROR 2018-08-24 09:55:37]Response body ! expected_msg, expected_msg is {error:继续操作前请注册或者登录9.}, body is {error:继续操作前请注册或者登录.} [ERROR 2018-08-24 10:00:11]Response time expected_time, expected_time is 400, time is 482.745 [ERROR 2018-08-25 21:49:41]statusCode error, expected_code is 208, statusCode is 200 6、Assert部分代码 def assert_body(self, body, body_msg, expected_msg):验证response body中任意属性的值:param body::param body_msg::param expected_msg::return:try:msg body[body_msg]assert msg expected_msgreturn Trueexcept:self.log.error(Response body msg ! expected_msg, expected_msg is %s, body_msg is %s % (expected_msg, body_msg))Consts.RESULT_LIST.append(fail)raisedef assert_in_text(self, body, expected_msg):验证response body中是否包含预期字符串:param body::param expected_msg::return:try:text json.dumps(body, ensure_asciiFalse)# print(text)assert expected_msg in textreturn Trueexcept:self.log.error(Response body Does not contain expected_msg, expected_msg is %s % expected_msg)Consts.RESULT_LIST.append(fail)raise 7、Request部分代码 def post_request(self, url, data, header):Post请求:param url::param data::param header::return:if not url.startswith(http://):url %s%s % (http://, url)print(url)try:if data is None:response self.get_session.post(urlurl, headersheader)else:response self.get_session.post(urlurl, paramsdata, headersheader)except requests.RequestException as e:print(%s%s % (RequestException url: , url))print(e)return ()except Exception as e:print(%s%s % (Exception url: , url))print(e)return ()# time_consuming为响应时间单位为毫秒time_consuming response.elapsed.microseconds/1000# time_total为响应时间单位为秒time_total response.elapsed.total_seconds()Common.Consts.STRESS_LIST.append(time_consuming)response_dicts dict()response_dicts[code] response.status_codetry:response_dicts[body] response.json()except Exception as e:print(e)response_dicts[body] response_dicts[text] response.textresponse_dicts[time_consuming] time_consumingresponse_dicts[time_total] time_totalreturn response_dicts 四、Allure报告及Email 1、Allure报告总览见下图 Allure报告.png 2、Email见下图 五、后续优化 1、集成Jenkins使用Jenkins插件生成Allure报告 2、多线程并发接口自动化测试 3、接口加密参数加密 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
http://www.hkea.cn/news/14489920/

相关文章:

  • 建立网站需要哪些步骤网页版梦幻西游能交易吗
  • 网站制作容易吗ipa文件自己网站怎么做下载
  • 西安seo代理计费济南seo整站优化招商电话
  • 微网站制作需要多少钱网络公司网站样本
  • 企业网站建设排名口碑建设工程施工合同范本2017免费下载
  • 网站空间域名能不能自己续费网站主题下载
  • 如何做公司网站的动漫做a视频网站有哪些
  • phpcms网站建设wordpress访问慢
  • 学习html 欣赏好的网站软件开发技术流程图
  • 一站式网站建设服务商WordPress彩色按钮
  • 2015做哪些网站致富黄页网址免费大全 观看
  • 网站如何能吸引用户商用自适应网站建设
  • 网站关键词掉了彭阳网站建设多少钱
  • 网站策划技巧html网站开发实例
  • 昆明公司做网站的价格婚恋网站的架构
  • 丰涵网站建设科技保定seo网络推广
  • 2017年网站建设视频教程网站开发中什么是站点
  • 网络营销的推广seo课程总结怎么写
  • 仙游县住房和城乡建设局网站网站建设项目团队组织结构图
  • 造型设计网站推荐html网页制作背景图片
  • html5特效网站西安 网站 高端 公司
  • 可以做qq空间背景音乐的网站南京城市规划建设展览馆网站
  • 胶州建设工程信息网站三网一体网站建设
  • 南安网站建设零基础wordpress 知乎
  • 汕头网站建设和运营做一元购网站 要多少钱
  • 李氏牛仔网站建设风格网站后台选项卡效果
  • 网站开发是否属于无形资产新型网络营销推广方式
  • 局网站建设管理制度辽宁建设工程信息网中标通知
  • 大棚建设的网站六安网站自然排名优化价格
  • 网站建设sz886关键词优化推广排名