当前位置:网站首页>Interface joint debugging test script optimization v4.0
Interface joint debugging test script optimization v4.0
2022-07-06 23:46:00 【Night * star】
introduction : Next chapter Interface joint commissioning test script optimization v2.0, This chapter optimizes script parameters , Put the parameters into the file , After the implementation script is compiled once , Later, you only need to maintain files .
Catalog
Optimization task :
Put the relevant interface test parameters into csv In file , Read the relevant parameters through the program , Pass it into the interface test script .
Problems encountered :
Create a csv file , Write the interface parameters into the file ,csv The documents are as follows :
- For common parameters url、expected_result、interfacename Just call it directly .
- But because each interface has different parameters , The number of parameters is also different , You need to use the loop again to read .
- Here, the number of parameters is written directly in front of the parameters , Then define a j The variable is equal to the number of parameters .
- It's not hard to find out ,H Column starts as a loop index The value is 7, And the end value of the loop is 2*j+7.
- So the following different parameter data can be read in the loop , The code reference is as follows .
Script implementation :
# Use parameterization technology to optimize the test script of joint debugging of multiple interfaces import requests import csv class Workflow_Test_v4(): def userinterface_test(self, url, userinfo, expected_result, interfacename): response = requests.post(url, data=userinfo).text print(response) r = response.find(expected_result) if r > 0: print(interfacename, " The test passed ") else: print(interfacename, " Test to fail ") if __name__ == '__main__': workflowobj4 = Workflow_Test_v4() file = open("test1.csv", "r") table = csv.reader(file) for row in table: # Read relevant contents line by line , And set it as the corresponding parameter url = row[1] expected_result = row[3] interfacename = row[5] # print("url yes :", url, " ", "expected_result yes :", expected_result, " ","interfacename yes :", interfacename) # Read interface test data userinfo = {} j = int(row[6]) for i in range(7, 2*j+7, 2): userinfo[row[i]] = row[i+1] # print(userinfo) # Instantiate the test class , Incoming test data workflowobj4.userinterface_test(url, userinfo, expected_result, interfacename)
Summary :
- The problem of script parameterization is mainly to find the rules of parameters
- Common parameters are :
- url: Interface access address
- expected_result: The interface responds to the expected results
- interfacename: The name of the interface
- Parameters of personality : Interface test data is different
- Manually count the number of test data , Write it into the test data template
- Circulation mode : Find the law of circulation , Just analyze a few values
- Initial value ----index = 7
- Termination value ----index = 2*j+7( because python Can't get the last place , So take it as the end value of the range )
- Change a few at a time ---- Because parameters have two values: key value and attribute , So when taking down a parameter , want i+2.
- Save the found parameters in the dictionary : Dictionary name [key] = value namely userinfo[row[i]] = row[i+1]
advantage :
Future interface tests , You only need to maintain the document of interface test data , There is no need to modify any code .
边栏推荐
- 资产安全问题或制约加密行业发展 风控+合规成为平台破局关键
- Gradle知識概括
- 基于SSM框架实现的房屋租赁管理系统
- Zero code and high return. How to use 40 sets of templates to meet 95% of the reporting needs in the work
- 【212】php发送post请求有哪三种方法
- JS addition, deletion, modification and query of JSON array
- Experiment 5: common automation libraries
- Detailed explanation of regular expression (regexp) in MySQL
- 英国都在试行4天工作制了,为什么BAT还对996上瘾?
- Example code of MySQL split string as query condition
猜你喜欢
The problem of ASP reading Oracle Database
leetcode:236. The nearest common ancestor of binary tree
Restoration analysis of protobuf protocol of bullet screen in station B
leetcode:236. 二叉树的最近公共祖先
STM32通过串口进入和唤醒停止模式
Matplotlib draws a histogram and adds values to the graph
每人每年最高500万经费!选人不选项目,专注基础科研,科学家主导腾讯出资的「新基石」启动申报...
js对JSON数组的增删改查
JDBC programming of MySQL database
DevOps可以帮助减少技术债务的十种方式
随机推荐
app通用功能测试用例
js导入excel&导出excel
Automatically update selenium driver chromedriver
亚朵三顾 IPO
Win11怎么恢复传统右键菜单?Win11右键改回传统模式的方法
MySQL implementation of field segmentation from one line to multiple lines of example code
每人每年最高500万经费!选人不选项目,专注基础科研,科学家主导腾讯出资的「新基石」启动申报...
Ajout, suppression et modification d'un tableau json par JS
每年 2000 亿投资进入芯片领域,「中国芯」创投正蓬勃
Entropy information entropy cross entropy
今日睡眠质量记录78分
With the help of this treasure artifact, I became the whole stack
本地部署 zeppelin 0.10.1
The method of reinstalling win10 system is as simple as that
Design a red envelope grabbing system
The "white paper on the panorama of the digital economy" has been released with great emphasis on the digitalization of insurance
The same job has two sources, and the same link has different database accounts. Why is the database list found in the second link the first account
The problem of ASP reading Oracle Database
每日刷题记录 (十五)
11 preparations for Web3 and Decentralization for traditional enterprises