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

asp.net网站转php富阳做兼职的网站

asp.net网站转php,富阳做兼职的网站,wordpress忘记了密码,网站开发的调研内容1 接口测试接口测试是对系统或组件之间的接口进行测试#xff0c;主要是校验数据的交换#xff0c;传递和控制管理过程#xff0c;以及相互逻辑依赖关系。接口自动化相对于UI自动化来说#xff0c;属于更底层的测试#xff0c;这样带来的好处就是测试收益更大#xff0c;… 1 接口测试接口测试是对系统或组件之间的接口进行测试主要是校验数据的交换传递和控制管理过程以及相互逻辑依赖关系。接口自动化相对于UI自动化来说属于更底层的测试这样带来的好处就是测试收益更大且维护成本相对来说较低是我们进行自动化测试的首选2 框架选型目前接口自动化的框架比较多比如jmeter就可以集接口自动化和性能测试于一体该工具编写用例效率不高还有我们常用的postman结合newman也可以实现接口自动化PythonunittestrequestsHTMLTestRunner 是目前比较主流的测试框架对python有一定的编码要求本期我们选择robotframework文中后续统一简称为RF这一个比较老牌的测试框架进行介绍RF是一个完全基于 关键字 测试驱动的框架它即能够基于它的一定规则导入你需要的测试库例如其集成了selenium的测试库即可以理解为操作控件的测试底层库然后基于这些测试库你能应用TXT形式编写自己的关键字支持python和java语言这些关键字即你的库组成之后再编写测试用例由测试关键字组成进行测试他支持移动端、UI自动化和接口自动化的测试3 环境搭建python的安装目前选取的python3以上的版本RF的运行依赖pythonrobotframework参考https://www.jianshu.com/p/9dcb4242b8f2jenkins用于调度RF的用例执行环境gitlab代码仓库4 需求4.1 需求内容接口内容实现一个下单并检查订单状态是否正常的场景该需求涉及到如下三个接口下单接口订单结果查询接口下单必须带上认证标识生成token的接口环境覆盖需要支持能在多套环境运行比如测试和预发布环境系统集成需要能够集成在CICD中实现版本更新后的自动检测4.2 用例设计4.2.1 用例设计根据业务场景设计测试用例方便后续实现4.2.2 测试数据构造预置不同环境的测试数据供实现调用5 整体实现架构接口测试实现层在RF通过引用默认关键字 RequestsLibrary (实现http请求)和通过python自定义关键字来完成用例实现的需求jenkins调度在jenkins上配置一个job设置好RF用例执行的服务器和发送给服务器相关的RF执行的指令并且在jenkins中配置好测试报告模板这样用例便可以通过jenkins完成执行并发送测试结果给项目干系人生成用例执行的API上图中蓝色部分就是为了将jenkins的job生成一个可访问api接口方便被测项目的CICD集成集成到被测系统CICD流程将上面步骤中封装的API配置在被测应用的gitlab-ci.yml中完成整个接口自动化的闭环6 RF用例实现6.1 引用的内置关键字RequestsLibrary 构造http的请求get|post等请求getRequests# get请求的入参[Arguments] ${url_domain} ${getbody} ${geturl} ${getToken}Create session postmain ${url_domain}# 定义header的内容${head} createdictionary content-typeapplication/json Authorization${getToken} MerchantId${s_merchant_id}# get请求${addr} getRequest postmain ${geturl} params${getbody} headers${head}# 请求状态码断言Should Be Equal As Strings ${addr.status_code} 200${response_get_data} To Json ${addr.content}# 返回http_get请求结果Set Test Variable ${response_get_data} Delete All Sessions6.2 自定义关键字getEnvDomain 用于从自定义的configs.ini文件获取对应环境的微服务的请求域名configs.ini的内容# 获取configs.ini的内容import configparserdef getEnv(path,env):config configparser.ConfigParser()config.read(path)passport config[env][passport]stockconfig[env][stock]financeconfig[env][finance]SUP config[env][SUP]publicApi config[env][publicApi]publicOrder config[env][publicOrder]data_dict{passport:passport,stock:stock,finance:finance,SUP:SUP,publicApi:publicApi,publicOrder:publicOrder}return data_dictexcelTodict 用户将excel中的内容作为字典返回import xlrd通用获取excel数据:param path excel文件路径:param sheet_name excel文件里面sheet的名称 如Sheet1:env 环境是IT还是PREdef getExcelDate(path, sheet_name,env):bk xlrd.open_workbook(path)sh bk.sheet_by_name(sheet_name)row_num sh.nrowsdata_list []for i in range(1, row_num):row_data sh.row_values(i)data {}for index, key in enumerate(sh.row_values(0)):data[key] row_data[index]data_list.append(data)data_list1 []for x in data_list:#print(这是str(x))if(x.get(env)env):data_list1.append(x)return data_list1getToken 提供接口下单的授权token*** Keywords ***# 根据传入的clientid、secret生成对应的tokengetToken[Arguments] ${client_id} ${client_secret} ${url_domain}Create session postmain ${url_domain}${auth} createdictionary grant_typeclient_credentials client_id${client_id} client_secret${client_secret}${header} createdictionary content-typeapplication/x-www-form-urlencoded${addr} postRequest postmain /oauth/token data${auth} headers${header}Should Be Equal As Strings ${addr.status_code} 200${responsedata} To Json ${addr.content}${access} Get From Dictionary ${responsedata} access_token${token} set variable bearer ${access}Set Test Variable ${token}Delete All SessionsgetAllDate 获取该用例下的所有数据getAllData[Arguments] ${row_no}getEnvDomaingetBalance ${row_no}getStockNum ${row_no}getSupProPrice ${row_no}getProPrice ${row_no}Set Test Variable ${publicOrderUrl}Set Test Variable ${FPbalance}Set Test Variable ${Pbalance}Set Test Variable ${Sbalance}Set Test Variable ${Jbalance}Set Test Variable ${Cardnum}Set Test Variable ${sprice}Set Test Variable ${price}Set Test Variable ${j_merchant_id}Set Test Variable ${s_merchant_id}Set Test Variable ${stock_id}Set Test Variable ${p_product_id}Set Test Variable ${s_product_id}实现demo*** Settings ***Test TemplateResource 引用所有资源.txt*** Test Cases ****** Settings ***Test TemplateResource 引用所有资源.txt*** Test Cases ***01 下单卡密直储商品[Tags] orderLOG ---------------------获取下单前的数量、余额------------------------------------------getAllData 0${Cardnum1} set variable ${Cardnum}${FPbalance1} set variable ${FPbalance}${Pbalance1} set variable ${Pbalance}${Sbalance1} set variable ${Sbalance}${Jbalance1} set variable ${Jbalance}${CustomerOrderNo1} Evaluate random.randint(1000000, 9999999) random${Time} Get Timelog ------------------------下单操作-------------------------------------------------------getToken 100xxxx 295dab07a9xxxx9780be0eb95xxxx ${casUrl}${input_cs} create dictionary memberId${j_merchant_id} clientId1xxx079 userIdstring shopTypestring customerOrderNo${CustomerOrderNo1}... productId${p_product_id} buyNum1 chargeAccountotest888888 notifyUrlstring chargeIpstring chargePasswordstring... chargeGameNamestring chargeGameRolestring chargeGameRegionstring chargeGameSrvstring chargeTypestring remainingNumber0... contactTelstring contactQQstring customerPrice0 poundage0 batchNumber originalOrderIdstring... shopNamestring appointSupProductId0 stemFromSubOrderId123456 externalBizId456789postRequests ${publicOrderUrl} ${input_cs} /api/Order ${token}${data} get from dictionary ${responsedata} data${orderid} get from dictionary ${data} idsleep 6${getdata} create dictionary Id${orderid} PageIndex1 PageSize1getRequests ${publicOrderUrl} ${getdata} /api/Order/GetList ${token}${datalist} get from dictionary ${response_get_data} data${data} get from dictionary ${datalist} list${dict} set variable ${data}[0]${orderOuterStatus} get from dictionary ${dict} orderOuterStatusLOG ---------------------获取下单后的数量、余额----------------------------------------------getAllData 0${Cardnum2} set variable ${Cardnum}${FPbalance2} set variable ${FPbalance}${Pbalance2} set variable ${Pbalance}${Sbalance2} set variable ${Sbalance}${Jbalance2} set variable ${Jbalance}${sprice} set variable ${sprice}${price} set variable ${price}log ------------------断言-----------------------------------------------------------------${Cardnum3} Evaluate ${Cardnum1}${Jbalance3} Evaluate ${Jbalance1}${Sbalance3} Evaluate ${Sbalance1}${Pbalance3} Evaluate ${Pbalance1}should be true ${orderOuterStatus}90should be true ${Cardnum3}${Cardnum2}should be true ${Jbalance3}${Jbalance2}should be true ${Sbalance3}${Sbalance2}should be true ${Pbalance3}${Pbalance2}7 集成到CICD流程7.1 jenkins配置job通过jenkins的参数化构建定义it和pre两套环境jenkins发送RF执行的命令7.2 封装的jenkins_job的执行接口地址通过python的flask框架根据测试和pre两套环境包一层jenkins的job执行接口__author__ paul# !/usr/bin/env python# -*- coding: utf-8 -*-from flask import Flask, abort, request, jsonifyimport jenkinsserver jenkins.Jenkins(http://10.0.1.xxx:80, usernamexxx, passwordfuluxxxx)app Flask(__name__)tasks []# it的测试集合http请求接口app.route(/test/it, methods[get])def robot_Test_It():server.build_job(CI_FuluOrder, {environment: IT})return jsonify({result: success})# pre的测试集合http请求接口app.route(/test/pre, methods[get])def robot_Test_Pre():server.build_job(CI_FuluOrder, {environment: PRE})return jsonify({result: success})if __name__ __main__:# 将host设置为0.0.0.0则外网用户也可以访问到这个服务app.run(host0.0.0.0, port80, debugTrue)7.3 将上述flask封装的接口打包成镜像根据dockerfile生成镜像FROM python:3.6WORKDIR /appEXPOSE 80COPY . .RUN pip install -r requirements.txtENTRYPOINT [python,robotTestApi.py]7.4 将镜像部署到kubernetes对外提供服务供触发测试执行的调用入口 ,这部分封装的接口部署在本地的k8s集群下ordermiddleIT: http://ordermiddle.xxx.cn/test/itprehttp://ordermiddle.xxx.cn/test/pre7.5 被测项目的CICD集成接口自动化测试gitlab目前采取直接对CICD脚本加入测试步骤在部署到容器30秒后考虑到容器在K8S启动时间调用测试接口7.6 发送测试报告
http://www.pierceye.com/news/686174/

相关文章:

  • 社交网站开发语言河北建设工程信息网首页
  • 上海营销型网站建设公司wordpress 自己做页面
  • 网站布局选择临淄信息网手机版
  • 怎样申请网站呢注册商标怎么注册商标
  • 网站地址英文不相关的网站做单项链接可以吗
  • 怎么做网站超链接wordpress 主题 设置
  • 手机电影网站建设如何做网站域名备案
  • 重庆手机网站推广价格网络营销论文参考文献
  • 如何给网站添加搜索关键字做流量网站有收入吗
  • 购物网站的英文如何不让百度收录网站
  • 上海定制网站建设公司哪家好建立公司官网
  • jsp电影网站开发教程滁州网站建设梦天堂
  • 网站建设哪个好一些网站服务器证书有问题
  • 广东省广州市白云区钟落潭镇优化什么建立生育支持政策体系
  • wordpress+代码质量哈尔滨百度seo代理
  • 北京模板网站建设全包中国招标与采购网官网
  • 戴尔公司网站建设成功的关键是什么永久网站
  • 上海青浦做网站做分销网站系统
  • 互联网公司网站建设的目的王烨演员
  • 网站开发图片加载慢如皋建设网站
  • 国家示范校建设成果网站wordpress文章图片alt
  • asp.net网站开发技术物流专线网站建设
  • 免费网站流量统计工具线下推广方法及策略
  • 西安市社交网站制作公司网站建设的参考文献
  • 企业网站内容建设网站开发小程序开发
  • 个人个案网站 类型wordpress群组
  • 微网站建设深圳英文站seo
  • 做网站要钱么网站建设备案多长时间
  • wordpress建站图片效果网站备案前置审批 成都
  • 哈尔滨网站关键词优化手机网站视频播放模板