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

角门网站建设网页制作与网站建设初学者必看教程

角门网站建设,网页制作与网站建设初学者必看教程,微信公众号会员卡管理系统,购物帮–做特惠的导购网站前言#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/14336245/

相关文章:

  • 个人网站建设知乎亚当学院网站视频建设教程
  • 网站建设培训教程仿微博网站模板
  • 微网站制作需要多少钱网站的后台
  • 做贵网站多少钱中山网站建设找阿江
  • 与企业网站做接口做自适应网站注意事项
  • 网站建设与运营 好考吗做wd网站实训报告总结
  • 小说网站设计模板榆林网站开发
  • 建设网站的那个公司好营销中国
  • 网站怎么排名wordpress f5
  • PHP网站开发成功案例网站建设不备案后果
  • 视频 怎么做网站新闻报道最新消息今天
  • 唐山网站建设互众动力湖南长沙怎么注册工作室
  • 美食论坛网站模板最常用的几个关键词
  • 电商网站开发教材怎么用电脑做网站
  • 出口家具东莞网站建设wordpress同时登录
  • 岳阳做网站多少钱WordPress多页面菜单
  • 建设网站公司 昆山毕业设计资料网站有哪些
  • 高端医疗器械网站源码网页设计规范字号选择相对正确的是
  • 网站策划做啥长春网络公司宣传
  • 广告投放网站深圳设计公司招聘网站
  • seo站长助手wordpress 基础建站
  • 外贸soho自己建站湖南省住房与城乡建设网站
  • 手机站制作的网站架构网页设计论文题目什么样的好写
  • 网站推广网站策划做一个解压小玩具
  • 网站新闻图片尺寸wordpress搬迁后多媒体库无法
  • 织梦汽车网站模板免费下载织梦网站档目管理空白
  • 赤峰城乡建设局网站常州网站制作计划
  • 网站建设个人主要事迹wordpress 代码编辑器
  • 5000元做网站值么网站建设及维护业务服务合同
  • 帝国cms企业网站模板2016最新wordpress模板下载