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

中国城乡建中国城乡建设部网站站长工具使用

中国城乡建中国城乡建设部网站,站长工具使用,杭州手机网站制作,宁波正规品牌网站设计在接触接口测试过程中补了很多课, 终于有点领悟接口测试的根本; 偶是个实用派~,那么现实中没有用的东西,基本上我都不会有很大的概念; 下面给的是接口测试的统一大步骤,其实就是让我们对接口…

在接触接口测试过程中补了很多课,

终于有点领悟接口测试的根本;

偶是个实用派~,那么现实中没有用的东西,基本上我都不会有很大的概念;

下面给的是接口测试的统一大步骤,其实就是让我们对接口测试有一个整体的概念,我们要做或学习接口测试,应该从那些地方着手,也就是告诉你,百度搜索了半天接口测试之后,我还是没有概念,那怎么办呢,那么下面这些步骤就是,你需要把接口测试拆开来了解的步骤;

如第一步,百度之后,要研究什么是resful,怎么个增删改查;

这些步骤都可以拆开来,反复实践,等把这些步骤都拆开来,实践完了,你的接口测试也就通透了,通杀所有接口测试

接口测试:Http类,webservice类  其实大同小异

找一个你自己的项目,没人做过接口测试的也可以,这样你可以自己想明白 怎么测,而不是用别人的思想,思想。。。最重要,可是没有思路到有思路的路程并不长,只是你要开始做这个事情,相信我,会很快,你发现自己确实很聪明~~~~~~

声明:我的这些东西之所以能入门,主要归功于乙醇大神的接口测试概念和冯xx朋友的不吝赐教以及网络上的各种散碎思想;

第一步: 先要明白你要测什么? 本质就是增,删,改,查。(学名叫 resful);

第二步:先用网上推荐的工具来感觉一下(比如:postman, 比如:SoapUI)

第三步:get, post, put, delete 大概怎么个用法,比如传参(比如 json串),怎么看结果(这些确实需要你有些技术基础的,比如 端口,返回值,编码类型)

第四步:那么,那么,我们学了语言,那就来用用吧(一定要拿写好的接口例子来看看,要不然,你不知道用这个语言的什么包或什么函数来帮我们获取到URl的数据等...)

第五步:那么我们加入框架吧(Unittest),这样和前面你的老版本,自创的那一版对比一下,会感触~~,然后明白为什么用框架, 实践确实是个有意思的事情;

第六步:把你的那些参数放入数据库,或者excel等等 实现数据驱动;倒腾吧

第七步:优化你的代码,反复反复倒腾 重构,你应该在通往 python高手的路上了

第八步:当然如果你会Java但是并不会用它写接口测试,那么把这些用例变成Java吧

第九步:那么你还能干嘛,还多着呢,思考:你现在这个接口是否只测试了A接口,那么B接口能测试吗? 比如C调用A接口,那么C是一个接口呢? 是吗~~ 你能分辨出来吗,把它弄清楚,如果不是接口,或者它是什么,能测试吗,怎么测试?

第十步:自己做一个假的接口(Moco):最好和你现在的项目结合的,比如开发正在开发的(和开发沟通);自己测试

第十一步:自己写一个接口(可以先按照之前开发开发好的接口,照葫芦画瓢一个,那也要画,必须画,谁叫你是做测试的,知己知彼呀~),先简单,后复杂,主要倒腾清楚原理就行,反正你也不做开发(当然如果你想做开发,那去做开发吧,别在这浪费时间);自己测试

第十二步: 开始倒腾 测试第二个接口,这次你直接从第六步开始就行(代码优美可不是一天炼成的)

如果你倒腾的很细的话,本人认为倒腾三个接口应该很够了,最后一定记得拿你这个知识到市场去卖钱哟;科技是第一生产力~~

其实,其实 有了这个基础 应该倒腾自动化的其他就不难了

第一版 unittest 框架源码

 1 # Lawsuit_interface_unittest.py2 # coding:utf-83 4 import json5 import unittest6 from suds.client import Client7 8 9 class Lawsuit_interface_testing(unittest.TestCase):
10 
11     def setUp(self):
12         self.url = "http://.....:8080/sys/webservice/sysNotifyTodoWebService?wsdl"
13         self.client = Client(self.url) #
14 
15     def tearDown(self):
16         pass
17 
18     def test_getTodo(self):
19 
20         notify_TodoGetContext = self.client.factory.create(
21             'notifyTodoGetContext')
22         notify_TodoGetContext.otherCond = ""
23         notify_TodoGetContext.pageNo = 1
24         notify_TodoGetContext.rowSize = 3
25         notify_TodoGetContext.targets = json.dumps(
26             {"LoginName": "xiaoming"})
27         notify_TodoGetContext.type = 1
28         notify_TodoAppResult = self.client.service.getTodo(
29             notify_TodoGetContext)
30         returnState = notify_TodoAppResult.returnState
31         self.assertEqual(returnState, 2)
32 
33     def test_sendTodo(self):
34 
35         notify_TodoSendContext = self.client.factory.create(
36             'notifyTodoSendContext')
37         notify_TodoSendContext.appName = "Lawsuit"
38         notify_TodoSendContext.createTime = "2015-11-27 15:32:39"
39         notify_TodoSendContext.key = ''
40         notify_TodoSendContext.link = 'http://wwww.baidu.com'
41         notify_TodoSendContext.subject = 'Lawsuit_testing'
42         notify_TodoSendContext.modelId = '123456789'
43         notify_TodoSendContext.modelName = "Lawsuit"
44         notify_TodoSendContext.targets = json.dumps(
45             {"LoginName": "xiaoming"})
46         notify_TodoSendContext.type = 1
47         notify_TodoAppResult = self.client.service.sendTodo(
48             notify_TodoSendContext)
49         returnState = notify_TodoAppResult.returnState
50         self.assertEqual(returnState, 2)
51 
52     def test_deleteTodo(self):
53 
54         notify_TodoRemoveContext = self.client.factory.create(
55             'notifyTodoRemoveContext')
56         notify_TodoRemoveContext.appName = "Lawsuit"
57         notify_TodoRemoveContext.modelId = '123456789'
58         notify_TodoRemoveContext.key = ''
59         notify_TodoRemoveContext.modelName = "Lawsuit"
60         notify_TodoRemoveContext.optType = 1
61         notify_TodoRemoveContext.targets = json.dumps(
62             {"LoginName": "xiaoming"})
63         notify_TodoAppResult = self.client.service.deleteTodo(
64             notify_TodoRemoveContext)
65         returnState = notify_TodoAppResult.returnState
66         self.assertEqual(returnState, 2)
67 
68     def test_setTodoDone(self):
69 
70         notify_TodoRemoveContext = self.client.factory.create(
71             'notifyTodoRemoveContext')
72         notify_TodoRemoveContext.appName = "Lawsuit"
73         notify_TodoRemoveContext.modelId = '123456789'
74         notify_TodoRemoveContext.key = ''
75         notify_TodoRemoveContext.modelName = "Lawsuit_testing"
76         notify_TodoRemoveContext.optType = 1
77         notify_TodoRemoveContext.targets = json.dumps(
78             {"LoginName": "xiaoming"})
79         notify_TodoAppResult = self.client.service.setTodoDone(
80             notify_TodoRemoveContext)
81         returnState = notify_TodoAppResult.returnState
82         self.assertEqual(returnState, 2)
83 
84 
85 if __name__ == '__main__':
86     unittest.main()

 第二版 使用excel 数据驱动

  1 # Lawsuit_interface_unittest_excel_v1.1.py2 # coding:utf-83 4 import unittest5 import json6 import xlrd7 from suds.client import Client8 import time9 import sys10 11 12 class Lawsuit_interface_testing(unittest.TestCase):13 14     def setUp(self):15         self.url ='http:// xx?wsdl'16         self.client = Client(self.url)17         self.xlsfile = r'lawsuit_casedata.xlsx'18         self.excel_data(self.xlsfile)19 20     def tearDown(self):21         pass22 23     def test_getToDO(self):24 25         self.Cannot_find_file(self.xlsfile)26 27         notify_TodoGetContext = self.client.factory.create(28             'notifyTodoGetContext')29         notify_TodoGetContext.pageNo = self.pageNo_value30         notify_TodoGetContext.rowSize = self.rowSize_value31         # another way to json32         # notify_TodoGetContext.targets = "{ \"LoginName\": \"xiaoming\" }"33         notify_TodoGetContext.targets = self.targets_value34         notify_TodoGetContext.type = self.ptype_value35 36         notify_TodoAppResult = self.client.service.getTodo(37             notify_TodoGetContext)38         returnState = notify_TodoAppResult.returnState39 40         print returnState41         self.assertEqual(returnState, 2)42 43     def test_sendTodo(self):44         self.Cannot_find_file(self.xlsfile)45 46         notify_TodoSendContext = self.client.factory.create(47             'notifyTodoSendContext')48         notify_TodoSendContext.appName = self.appName_value49         notify_TodoSendContext.createTime = self.creatime_value50         # notify_TodoSendContext.key = ''51         notify_TodoSendContext.link = self.link_value52         notify_TodoSendContext.subject = self.subject_value53         notify_TodoSendContext.modelId = self.modelId_value54         notify_TodoSendContext.modelName = self.modelName_value55         notify_TodoSendContext.targets = self.targets_value56         notify_TodoSendContext.type = self.ptype_value57         notify_TodoAppResult = self.client.service.sendTodo(58             notify_TodoSendContext)59         returnState = notify_TodoAppResult.returnState60         self.assertEqual(returnState, 2)61 62     def test_deleteTodo(self):63         self.Cannot_find_file(self.xlsfile)64 65         notify_TodoRemoveContext = self.client.factory.create(66             'notifyTodoRemoveContext')67         notify_TodoRemoveContext.appName = self.appName_value68         notify_TodoRemoveContext.modelId = self.modelId_value69         # notify_TodoRemoveContext.key = ''70         notify_TodoRemoveContext.modelName = self.modelName_value71         notify_TodoRemoveContext.optType = self.optType_value72         notify_TodoRemoveContext.targets = self.targets_value73         notify_TodoAppResult = self.client.service.deleteTodo(74             notify_TodoRemoveContext)75         returnState = notify_TodoAppResult.returnState76         self.assertEqual(returnState, 2)77 78     def test_setTodoDone(self):79         self.Cannot_find_file(self.xlsfile)80 81         notify_TodoRemoveContext = self.client.factory.create(82             'notifyTodoRemoveContext')83         notify_TodoRemoveContext.appName = self.appName_value84         notify_TodoRemoveContext.modelId = self.modelId_value85         # notify_TodoRemoveContext.key = ''86         notify_TodoRemoveContext.modelName = self.modelName_value87         notify_TodoRemoveContext.optType = self.optType_value88         notify_TodoRemoveContext.targets = self.targets_value89         notify_TodoAppResult = self.client.service.setTodoDone(90             notify_TodoRemoveContext)91         returnState = notify_TodoAppResult.returnState92         self.assertEqual(returnState, 2)93 94     def excel_data(self, xlsfile):95 96         self.Cannot_find_file(self.xlsfile)97         book = xlrd.open_workbook(xlsfile)98         api_sheet = book.sheet_by_index(0)99         nrows = api_sheet.nrows
100         for i in range(1, nrows):
101             caseID = api_sheet.cell(i, 0)
102             appName = api_sheet.cell(i, 1)
103             creatime = time.strftime(
104                 time.strftime('%Y-%m-%d %X', time.localtime(time.time())))
105             link = api_sheet.cell(i, 3)
106             subject = api_sheet.cell(i, 4)
107             modelId = api_sheet.cell(i, 5)
108             modelName = api_sheet.cell(i, 6)
109             targets = api_sheet.cell(i, 7)
110             ptype = api_sheet.cell(i, 8)
111             pageNo = api_sheet.cell(i, 9)
112             rowSize = api_sheet.cell(i, 10)
113             optType = api_sheet.cell(i, 11)
114             # returnstatue = api_sheet.cell(i, 12)
115             # message = api_sheet.cell(i, 13)
116             if api_sheet.cell(i, 0).ctype != 0:
117                 # caseID_value=str(int(caseID.value))
118                 self.appName_value = appName.value
119                 self.creatime_value=creatime
120                 self.link_value = link.value
121                 self.subject_value = subject.value
122                 self.modelId_value = modelId.value
123                 self.modelName_value = modelName.value
124                 # print type(targets)
125                 self.targets_value = targets.value
126                 # print type(targets.value)
127                 self.ptype_value = int(ptype.value)
128                 self.pageNo_value = int(pageNo.value)
129                 self.rowSize_value = int(rowSize.value)
130                 self.optType_value = int(optType.value)
131 
132                 # returnstatue_value=returnstatue.value
133                 # message_value=message.value
134             else:
135                 return 0
136             #    data1=
137 
138         # return data1
139 
140     # exception
141 
142     def Cannot_find_file(self, xlsfile):
143         try:
144             foo = open(self.xlsfile)
145         except EnvironmentError as err:
146             print "Unable to open file:{}".format(err)
147             sys.exit(1)
148 
149 
150 if __name__ == '__main__':
151     unittest.main()

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)


文章转载自:
http://pervasive.hmxb.cn
http://foremilk.hmxb.cn
http://pseudepigraph.hmxb.cn
http://bengali.hmxb.cn
http://muffetee.hmxb.cn
http://spiteful.hmxb.cn
http://lived.hmxb.cn
http://headsail.hmxb.cn
http://galvanograph.hmxb.cn
http://carnauba.hmxb.cn
http://sultry.hmxb.cn
http://tribal.hmxb.cn
http://syntonous.hmxb.cn
http://defectiveness.hmxb.cn
http://lignicolous.hmxb.cn
http://zoonose.hmxb.cn
http://federalization.hmxb.cn
http://laevulin.hmxb.cn
http://valletta.hmxb.cn
http://disclaim.hmxb.cn
http://antialcoholism.hmxb.cn
http://allimportant.hmxb.cn
http://multiplepoinding.hmxb.cn
http://trapse.hmxb.cn
http://infrequence.hmxb.cn
http://anybody.hmxb.cn
http://veteran.hmxb.cn
http://woodlander.hmxb.cn
http://precondition.hmxb.cn
http://ingenuity.hmxb.cn
http://kampuchea.hmxb.cn
http://earhole.hmxb.cn
http://tormentor.hmxb.cn
http://brayer.hmxb.cn
http://duluth.hmxb.cn
http://stipel.hmxb.cn
http://theanthropic.hmxb.cn
http://kerry.hmxb.cn
http://dubiosity.hmxb.cn
http://criminate.hmxb.cn
http://pint.hmxb.cn
http://exhaustive.hmxb.cn
http://benguela.hmxb.cn
http://battue.hmxb.cn
http://verselet.hmxb.cn
http://lightheartedness.hmxb.cn
http://malines.hmxb.cn
http://solonetz.hmxb.cn
http://photothermic.hmxb.cn
http://pinhead.hmxb.cn
http://popover.hmxb.cn
http://thalassocracy.hmxb.cn
http://rocketdrome.hmxb.cn
http://practicer.hmxb.cn
http://haw.hmxb.cn
http://bitonal.hmxb.cn
http://gaiter.hmxb.cn
http://intermezzo.hmxb.cn
http://aleconner.hmxb.cn
http://galenism.hmxb.cn
http://pully.hmxb.cn
http://octahedra.hmxb.cn
http://political.hmxb.cn
http://staffage.hmxb.cn
http://achillean.hmxb.cn
http://doat.hmxb.cn
http://pilliwinks.hmxb.cn
http://hallucinatory.hmxb.cn
http://coniform.hmxb.cn
http://chemigraphy.hmxb.cn
http://recreative.hmxb.cn
http://appal.hmxb.cn
http://amphistylar.hmxb.cn
http://anticaries.hmxb.cn
http://phosphoglucomutase.hmxb.cn
http://position.hmxb.cn
http://demobilise.hmxb.cn
http://bannock.hmxb.cn
http://raft.hmxb.cn
http://mtb.hmxb.cn
http://spiritedly.hmxb.cn
http://cachou.hmxb.cn
http://sidearm.hmxb.cn
http://pome.hmxb.cn
http://workhand.hmxb.cn
http://decorous.hmxb.cn
http://cur.hmxb.cn
http://restive.hmxb.cn
http://optician.hmxb.cn
http://bohr.hmxb.cn
http://hexahydroxy.hmxb.cn
http://bombastic.hmxb.cn
http://bejewlled.hmxb.cn
http://insincerely.hmxb.cn
http://for.hmxb.cn
http://occidentalise.hmxb.cn
http://jockette.hmxb.cn
http://mutton.hmxb.cn
http://specialty.hmxb.cn
http://benzocaine.hmxb.cn
http://www.dt0577.cn/news/123894.html

相关文章:

  • 网站怎么管理海外自媒体推广
  • 德州手机网站建设报价苏州seo网站优化软件
  • 马鞍山做公司网站的谷歌seo外链
  • 网站开发参考书籍百度一下进入首页
  • 做美容美发的网站有哪些谷歌seo是什么意思
  • 网站开发公司怎么选择站长之家ip查询
  • 电商网页设计尺寸seo一个关键词多少钱
  • 域名空间网站怎么做网站关键词优化教程
  • 常州网站建设费用竞价推广开户公司
  • 网站建设搭建步骤百度高级搜索首页
  • 阜阳做网站公司windows优化大师好不好
  • 军事国际新闻最新消息西安seo外包服务
  • 群晖ds1817做网站制作网站的平台
  • 网站建设易网企业营销推广怎么做
  • 纯静态网站做优化有什么影响新品推广计划与方案
  • 深圳禅城网站设计每日一则新闻摘抄
  • 制作动态网站seo快速排名首页
  • 网站漂浮图怎么做关键词优化软件哪家好
  • 承德百度网站建设搭建网站步骤
  • 郑州制作个人网站南京网站制作
  • 网站建设需求文档模板nba今日最新消息
  • 没得公司可以做网站嘛全网引擎搜索
  • 天津哪家做企业网站北京百度seo排名点击软件
  • 青岛网站seo收费百度推广是怎么做的
  • 重庆网站建设流程市场营销师报名官网
  • 写小说的网站自己做封面电商关键词工具
  • 微信怎么推广自己的产品天津网站seo设计
  • 国内wordpress著名站怎么自己搭建网站
  • 外贸开发产品网站建设北京百度快速优化排名
  • 深圳找个人做网站长沙网站优化方案