44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
| 
								 | 
							
								''' Contributed by Lin Junhong et al. 2023-06.'''
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import requests
							 | 
						||
| 
								 | 
							
								import multiprocessing
							 | 
						||
| 
								 | 
							
								import time
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def stress(username):
							 | 
						||
| 
								 | 
							
								    try:
							 | 
						||
| 
								 | 
							
								        data = {
							 | 
						||
| 
								 | 
							
								            'username': username,
							 | 
						||
| 
								 | 
							
								            'password': '123123'
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        headers = {
							 | 
						||
| 
								 | 
							
								            'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.51'
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        session = requests.session()
							 | 
						||
| 
								 | 
							
								        response = session.post(url='http://127.0.0.1:5000/signup', data=data, headers=headers)
							 | 
						||
| 
								 | 
							
								        print('Sign up ', response.status_code)
							 | 
						||
| 
								 | 
							
								        time.sleep(0.5)
							 | 
						||
| 
								 | 
							
								        response = session.post(url='http://127.0.0.1:5000/login', data=data, headers=headers)
							 | 
						||
| 
								 | 
							
								        print('Sign in ', response.status_code)
							 | 
						||
| 
								 | 
							
								        time.sleep(0.5)
							 | 
						||
| 
								 | 
							
								        response = session.get(url=f'http://127.0.0.1:5000/{username}/userpage', headers=headers)
							 | 
						||
| 
								 | 
							
								        print('User page', response.status_code)
							 | 
						||
| 
								 | 
							
								        time.sleep(0.5)
							 | 
						||
| 
								 | 
							
								        print(session.cookies)
							 | 
						||
| 
								 | 
							
								        for i in range(5):
							 | 
						||
| 
								 | 
							
								            response = session.get(url=f'http://127.0.0.1:5000/get_next_article/{username}', headers=headers, cookies=session.cookies)
							 | 
						||
| 
								 | 
							
								            time.sleep(0.5)
							 | 
						||
| 
								 | 
							
								            print(f'Next page ({i}) [{username}]')
							 | 
						||
| 
								 | 
							
								            print(response.status_code)
							 | 
						||
| 
								 | 
							
								            print(response.json()['today_article']['article_title'])
							 | 
						||
| 
								 | 
							
								    except Exception as e:
							 | 
						||
| 
								 | 
							
								        print(e)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if __name__ == '__main__':
							 | 
						||
| 
								 | 
							
								    username = 'Learner'
							 | 
						||
| 
								 | 
							
								    pool = multiprocessing.Pool(processes=10)
							 | 
						||
| 
								 | 
							
								    for i in range(10):
							 | 
						||
| 
								 | 
							
								        pool.apply_async(stress, (f'{username}{i}',))
							 | 
						||
| 
								 | 
							
								    pool.close()
							 | 
						||
| 
								 | 
							
								    pool.join()
							 |