Tag Archives: python interface automation

The automatic token of Python interface is passed into the header

The automatic token of Python interface is passed into the header

(1) Create login request to get token

#Test case class for login screen
# Import logging class for setting logging information
from Logs.Log import Logger
#Import configuration file class to read public data
from Readini.Read import Readini
# Import excel class for reading data in excel
from DataExcel.readExcel import ExcelUtil
#import request package
import requests
import json
from Public.PageObject import SendRequest
#import json package
import unittest
import json
from builtins import str
#Set the parameters related to reading the login
excel = ExcelUtil(Readini().get_ini_value('Excel','exccelini')).dict_data()
def token():
    # Set message header information
     header=eval(excel[0]['header'])
     # set url data
     url = excel[0]['Url']
    # Set the parameter information
     param=excel[0]['payload']
     # Convert the set parameter information to json format data
     # Set the request type
     type=excel[0]['Method']

    #Send a post login request
     response=SendRequest().send_request(type,url,data=param,header=header)
     #Get token data
     token=response.json()['data']['access_token']
     #Convert the token data to a string format
     return str(token)

(2) Create a unittest public initialization class and pass in the token data

from selenium import webdriver
import unittest
#Create unitest initialization public class
from Logs.Log import Logger
log=Logger('Interface automation result').getlog()
from TOKEN.PublicToken import token
import json
class TestBase(unittest.TestCase):

    #Interface initialization begins
    @classmethod
    def setUpClass(cls):
        log.info('Interface automation test started')
        # Pass in the obtained token as the initialized token data
        cls.token=token()



    #End of interface initialization
    @classmethod
    def tearDownClass(cls):
        log.info('End of interface automation test')


if __name__ == '__main__':
    unittest.main() #Main function for executing a program that has been written

(3) Pass in the token obtained during initialization to the header

Import logging class for setting up logging information
from Logs.Log import Logger
#Import profile class to read public data
from Readini.Read import Readini
#import excel class for reading data in excel
from DataExcel.readExcel import ExcelUtil
# Set the parameters related to reading logins
excel = ExcelUtil(Readini().get_ini_value('Excel','exccelini')).dict_data()
#Set the log type parameter
log = Logger('login interface log execution result').getlog()
# Inherit unittest initialization class
from ChanDao.TestBase import TestBase
#import request package
import requests
from Public.PageObject import SendRequest
import unittest
import json
from Readini.Read import Readini


class Pinlun(TestBase):

  def  test_1_pinglun_success(self):
     '''Login successful'''
    # Set message header information
     header=eval(Readini().get_ini_value('header','headers'))
     #eval(excel[0]['header'])
     #add token information like in the headers header
     header['Admin-Authorization']=self.token
     log.info(header)
     # Set the url data
     url = 'http://localhost:8090/api/admin/posts/comments'
     # log.info('The exit url address is:' + url)
     # Set the parameter information
     param={'page':'0','size':'10','keyword':'68'}
     # Convert the set parameter information to json format data
    # log.info(param)
     # Set the request type
     type='get'
     log.info(type)

    #Send get login request
     response=SendRequest().send_request(type,url,param,header=header)
     print(response.json())



    #Get the status code of the login response, do the assertion
     # self.assertEqual(response.status_code,excel[0]['StatusCode'])
     # log.info('Response status code is 200, login successful')

# Set the main function to execute the written login script
if __name__ == '__main__':
    unittest.main()

Note:
1. To get the token, you need to call the login interface
2. Pass the token into the setup function of unittest
3. Finally, pass the token into the header

[Solved] Python Error: socket.gaierror : [errno 11004] getaddrinfo failed error

Because we are doing some web data set processing, we need to resolve the domain name and organize Ip, so we use
Socket.getaddrinfo.

First, read the domain name from the previously processed domain name dataset
Secondly, loop through them one by one
Do the exception handling

在这里插入图片描述

But the results are obviously not as good as they should be, but when you manually put a single domain name in and resolve it, there is no problem.

在这里插入图片描述

I think the problem is a newline at the end of server_name.

So I need to remove the ‘\n’
在这里插入图片描述

To explain, there are two ways to remove line breaks here.
Method 1: With .sprip(‘\n’)
Method 2: [:-1] (because the line break is always in the last character)
I hope this will help and solve the problem smoothly and instantly.

def get_dns():
    domains = DataDispose.get_domain_list()
    for domain in domains:
        try:
            myaddr = socket.getaddrinfo(domain[:-1], 'http')
            print(myaddr)
        except Exception as e:
            print(e)
            continue